[langage]erreur dans mon script
bonsoir à tous,
j'ai un soucis, c'est tout con j'suis sur, mais j'en ai eu plein la tête toute la journée lol, mes neuronnes sont fatigué.
j'ai un calendrier, qui récupére via l'url le numéro de mois et l'année, et qui affiche les jours correspondant.
ex : http://www.site.fr/cgi-bin/fichier.pl?06-2005
moi je me suis dit je vais faire 2 petit lien pour naviguer un peu, en augmentant d'un mois, en descendant et surtout si le mois et supérieur a 12 alors on augmente l'année et si le mois est inférieur a 1 on décemente l'année, c'est tout bête.
voila mon bout de script.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| my @mois = ('January','February','March','April','May','June','July','August','September','October','November','December');
$Month = $Result[0]; shift(@Result);
$Month =~ s/\s\s\s*//g;
my @Mois = split(/ /,$Month); # $mois[1] = année
for(my $i=0;($i<12);$i++){
if($mois[$i] eq $Mois[0]){
$numMois = $i + 1;
}
}
if($numMois >= 12){
$Mois[1]++;
$numMois = 0;
}
if($numMois <= 1){
$Mois[1] = ($Mois[1] - 1);
$numMois = 13;
}
$ret = "<TABLE><CAPTION ALIGN=\"TOP\"><a href=blog.pl?".($numMois - 1)."-".$Mois[1]."><img src=\"/blog/images/flechegauche.gif\"></a> <B>$Month</B> <a href=blog.pl?".($numMois + 1)."-".$Mois[1]."><img src=\"/blog/images/flechedroite.gif\"></a></CAPTION>\n<TR>"; |
et si vous voulez voir comment mon calendrier se comporte avec ca :
http://www.rea-lise.com/blog/
j'pense que vous allez voir directement l'erreur, je fait 2 test a la suite et c'est la que ca foire certainement, car quand par exemple l'année augmente de 1 je réinitialise la variable $numMois à 1 pour commencer au premier mois de la nouvelle année, lol le seul problème c'est que du coup le numéro de mois et maintenant inférieur à ou egal à 1 donc ! le 2eme test (à la suite va s'avéré VRAI) mais j'ai pas d'astuce pour régler se soucis, c'est vraiment pas grand chose, si vous pouviez m'aider ....
MERCI d'avance, bonne soirée
Re: erreur dans mon script
Euh ...
Citation:
Envoyé par Fabouney
Code:
1 2 3 4 5 6 7 8
| if($numMois >= 12){
$Mois[1]++;
$numMois = 0;
}
if($numMois <= 1){
$Mois[1] = ($Mois[1] - 1);
$numMois = 13;
} |
D'un strict point de vue algorithmique, il vaudrait mieux disjoindre tes cas, plutôt que de les enchainer ...
Code:
1 2 3 4 5 6 7 8
| if($numMois >= 12){
$Mois[1]++;
$numMois = 0;
}
elsif($numMois <= 1){
$Mois[1] = ($Mois[1] - 1);
$numMois = 13;
} |
Juste en passant, comme ça ... je n'ai pas creusé davantage ...
Re: erreur dans mon script
Citation:
Envoyé par Fabouney
moi je me suis dit je vais faire 2 petit lien pour naviguer un peu, en augmentant d'un mois, en descendant et surtout si le mois et supérieur a 12 alors on augmente l'année et si le mois est inférieur a 1 on décemente l'année, c'est tout bête.
voila mon bout de script.
Code:
1 2 3 4 5 6 7 8 9
|
if($numMois >= 12){
$Mois[1]++;
$numMois = 0;
}
if($numMois <= 1){
$Mois[1] = ($Mois[1] - 1);
$numMois = 13;
} |
Il vaut mieux gérer directement n'importe quel incrément. Sans utiliser Date::Calc, quelque chose comme :
Code:
1 2 3 4 5 6 7 8 9
|
while($numMois >= 12){
$Mois[1]++;
$numMois -= 12;
}
if($numMois <= 1){
$Mois[1]--;
$numMois += 12;
} |
Mais bon, pitié, aies la générosité d'accorder l'année une variable pour elle toute seule, elle le mérite !
N