problème de condition if elsif
Bonjour,
tout d'abord je suis débutant en PERL.
J'ai un souci que je n'arrive pas à expliquer, je fais des tests de condition pour définir le dernier jour du mois d'avant la date système et lorsque je veux tester pour les mois : 08 09 10 11
cela ne fonctionne plus, pourriez vous m'aider s'il vous plait.
voici mon code qui fonctionne :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| my ($secondes, $minutes, $heures, $jour_mois, $mois,
$an, $jour_semaine, $jour_calendaire, $heure_ete) = localtime(time);
$minutes = sprintf("%02d",$minutes);
$heures = sprintf("%02d",$heures);
$jour = sprintf("%02d",$jour_mois);
$mois_avant = sprintf("%02d",$mois);
$mois = sprintf("%02d",$mois+1);
if ($mois_avant == 0){
$mois_avant = 12;
$dernierjour = 31;
}
elsif (($mois_avant == 01)||($mois_avant == 03)||($mois_avant == 05)||($mois_avant == 07)){
$dernierjour = 31;
}
elsif (($mois_avant == 04)||($mois_avant == 06)){
$dernierjour = 30;
}
elsif ($mois_avant == 02){
$dernierjour = 28;
}
$an = sprintf("%04d",$an+1900);
$startdate= '01/'.$mois_avant."/".$an;
$enddate= $dernierjour.'/'.$mois_avant."/".$an;
$fname = $dernierjour."_".$mois_avant;
# modification du sql
if (!-d "sql"){
mkdir("sql");
}
open(O,">sql/$fname.sql"); |
Et maintenant il ne fonctionne plus :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| my ($secondes, $minutes, $heures, $jour_mois, $mois,
$an, $jour_semaine, $jour_calendaire, $heure_ete) = localtime(time);
$minutes = sprintf("%02d",$minutes);
$heures = sprintf("%02d",$heures);
$jour = sprintf("%02d",$jour_mois);
$mois_avant = sprintf("%02d",$mois);
$mois = sprintf("%02d",$mois+1);
if ($mois_avant == 0){
$mois_avant = 12;
$dernierjour = 31;
}
elsif (($mois_avant == 01)||($mois_avant == 03)||($mois_avant == 05)||($mois_avant == 07)||($mois_avant == 08)){
$dernierjour = 31;
}
elsif (($mois_avant == 04)||($mois_avant == 06)){
$dernierjour = 30;
}
elsif ($mois_avant == 02){
$dernierjour = 28;
}
$an = sprintf("%04d",$an+1900);
$startdate= '01/'.$mois_avant."/".$an;
$enddate= $dernierjour.'/'.$mois_avant."/".$an;
$fname = $dernierjour."_".$mois_avant;
# modification du sql
if (!-d "sql"){
mkdir("sql");
}
open(O,">sql/$fname.sql"); |
Merci d'avance :(