Bonjour,
j'ai crée un compteur pour mon site internet qui est un compte à rebours du style de J-xx avant Noêl.
Mais le programme est compliqué, et je pense qu'il est faux.
Pourriez-vous me dire ce que vous en pensez ? J'ai eu du mal avec les années bissextiles.
sub compteur {
$date_echeance = 171;
$annee_echeance = 2003;
$decalage_horaire = 6;
# Demande de la date
$decalage = time + ($decalage_horaire * 3600);
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($decalage);
$year += 1900;
# Calcul du compte à Rebours
$y = (($date_echeance - $yday) + (($annee_echeance - $year)*365));
# On corrige si c'est une année bissextile
foreach ($year..$annee_echeance) {
# L'année est bissextile
if (&leap($_) == 2) {
# L'année en cours est l'année d'échéance
if ("$year" eq "$annee_echeance" ) {
# On ajoute 1 si le 29 Février est inclus dans le décompte
if (($date_echeance <= 59) and ($yday <= 59)) {$y++}
# Sinon
} else {
# Si un 29 Février arrive dans l'année en cours ...
if (($_ eq "$year" ) and ($yday <= 59)) {$y++}
# Si un 29 Février existe dans l'année d'échéance
elsif (($_ eq "$annee_echeance" ) and ($date_echeance >= 59)) {$y++}
# Si une année bissextile existe pour une année située au centre de la boucle
else {$y++}
}
}
}
}
sub leap {
my $year = shift;
# C'est quoi une année Bissextile ?
unless ($year % 4) {
unless ($year % 100) {
unless ($year % 400) {
# Année divisible par 4, 100 et 400 : bissextile
return "2";
}
# Année divisible par 4, 100 mais non 400 : non bissextile
else {
return "1";
}
}
# Année divisible par 4 mais non 100 : bissextile
else {
return "2";
}
}
# Année non divisible par 4 : non bissextile
else {
return "1";
}
aprés, j'affiche : j-$y avant...
(note : il y a peet-être un crochet de trop ou de moins, j'ai supprimé des trucs pour le post..)
merci !!
Message édité par Ethan_carter le 13-06-2003 à 12:57:49