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
| package fonctions;
use vars qw(@ISA @EXPORT);
use Exporter;
use lib "/LIVR/DERS/OD/lib";
use modules ; #/echange/LIVR/DERS/scripts/lib
use Env;
use fonctions;
use Cwd;
use POSIX;
@ISA = qw (Exporter);
@EXPORT = (
'Ctrl_Plateforme',
'GetFilesList',
'Color',
'Tableau',
'Centre',
'Gauche',
'Droite',
'Uniq',
'Quantieme',
'Conv_date',
'Ascii',
'EnvoyerMail',
'Feries',
'is_fr_holiday',
'_compute_date_from_easter',
'get_pentecost',
'get_ascension',
'get_easter',
'gregorian_easter',
'Nb_jour_ctrl'
);
sub Nb_jour_ctrl {
my ($decalage) = @_;
if ( $decalage <= 0 ) {
## pas de changement
}
elsif ( $decalage >= 0 ) {
$jour = substr($decalage,0,2);
$mois = substr($decalage,2,2);
$an = substr($decalage,4,2);
$mois --;
$an = $an + 100;
my $seconde = mktime(0,0,12,$jour,$mois,$an,0,0,1);
my $seconde2 = time();
$decalage = int(($seconde - $seconde2) / 86400);
}
else {
$decalage = 0;
}
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time() - 60*60*24 * $decalage * -1);
my $jour_c = 0;
my $jour_f = 0;
my $NbJour = 1;
my @tabdate = split(/ /,$date_lettre);
my $annee = $year + 1900;
my @ferie = Feries($annee);
my $jour = sprintf("%02d",$mday);
my $mois = sprintf("%02d", $mon);
my $date_chiffre = $jour . "/" . $mois . "/" . $annee;
for ( $i=0 ; $i<=6 ; $i++ ) {
my $wday1 = (localtime(time() - 60*60*24 * ($decalage - $i -1) * -1))[6];
if ( $wday1 == 6 || $wday1 == 0 ) {
$jour_c = 1;
}
else {
$jour_c = 0;
}
if ( FormeDateOpe ($decalage - $i - 1) ~~ @ferie ) {
$jour_f = 1 ;
}
else {
$jour_f = 0 ;
}
if($jour_c == 1 || $jour_f == 1){
$NbJour ++;
}
elsif ( $jour_c == 0 && $jour_f == 0 ) {
last;
}
}
return $NbJour;
} |
Partager