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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
#!./perl #------------------------------------------------------------------ # Variables #------------------------------------------------------------------ $FINTEGRA="E:\\FichierHtml"; # date(); $fichier="INTEGRA_$year-$mon-$mday.HTML"; print "Le nom du fichier: ",$fichier, " concerne l'integralite\n"; exit; #------------------------------------------------------------------ # Routine d extraction de la date recoit en parametre $j #------------------------------------------------------------------ sub dateh { $joursec = ((24*$j)*60*60); $datcal = time() - $joursec; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($datcal); $wday=$wday; $year=$year+1900; $mon = sprintf("%02d", $mon+1); # Convert to 2-digit 1-based $mday. $mday = sprintf("%02d", $mday); # Convert to 2-digit $mday. } #------------------------------------------------------------------ # Routine d extraction de la date et retourne la date du dernier # jour ouvrable en fonction des jours feries. #------------------------------------------------------------------ sub date { $joursec = 0; $caldat = time() - $joursec; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($caldat); $wday=$wday; $RTJOUR=(qw(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi))[$wday]; $year=$year+1900; $mon = sprintf("%02d", $mon+1); # Convert to 2-digit 1-based $mday. $mday = sprintf("%02d", $mday); # Convert to 2-digit $mday. $DATE1=("$year-$mon-$mday"); @FERIE=("2004-01-01","2004-01-02","2004-04-09","2004-04-12","2004-05-24","2004-0 6-24","2004-07-01","2004-09-06","2004-10-11","2004-12-24","2004-12-27","2004-12-28","2004-12-31","2005-01-01","2005-01-02","X"); $j = 0; my $i = -1; my $k = -1; do { $k++; foreach $jferie (@FERIE) { $i++; if ($jferie eq $DATE1) { if (($RTJOUR eq 'Lundi') or ($RTJOUR eq 'Mardi') or ($RTJOUR eq 'Mercredi') o r ($RTJOUR eq 'Jeudi') or ($RTJOUR eq 'Vendredi')) { $j++;$i=1; dateh(); $DATE1=("$year-$mon-$mday"); $RTJOUR=(qw(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi))[$wday]; } if ($RTJOUR eq 'Dimanche') { $j++;$i=1; dateh(); $DATE1=("$year-$mon-$mday"); $RTJOUR=(qw(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi))[$wday]; } if ($RTJOUR eq 'Samedi') { $j++;$i=1; dateh(); $DATE1=("$year-$mon-$mday"); $RTJOUR=(qw(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi))[$wday]; } } else { if ($i == 0) { $j++; dateh(); $DATE1=("$year-$mon-$mday"); $RTJOUR=(qw(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi))[$wday]; if ($RTJOUR eq 'Dimanche') { $j++;$i=1; dateh(); $DATE1=("$year-$mon-$mday"); $RTJOUR=(qw(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi))[$wday]; } if ($RTJOUR eq 'Samedi') { $j++;$i=1; dateh(); $DATE1=("$year-$mon-$mday"); $RTJOUR=(qw(Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi))[$wday]; } } } } } until($FERIE[$k] eq 'X'); $DATE=("$year-$mon-$mday"); } |