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
| sub getUnixDate {
my ($date) = @_;
my (@date) = split(m:-:,$date);
my ($jour, $mois, $annee) = @date;
my @jours_valides = (31,28,31,30,31,30,31,31,30,31,30,31);
my $nbSec;
my $anneeBissextile;
my $nbJour = $jours_valides[$mois] - $jour;
my $nbMois = $mois - 1;
my $nbAnnee = $annee - 1970;
$nbSec = $nbJour * 24 * 60 * 60;
for(my $i = 1;$i <= $nbMois;$i++) {
nbSec = nbSec + ($jours_valides[$i] * 24 * 60 * 60);
}
for(my $annee = 1970;$annee <= $nbAnnee;$annee++) {
if($annee % 400 == 0) { $anneeBissextile = 1; }
elsif($annee % 100 == 0) { $anneeBissextile = 0; }
elsif($annee % 4 == 0) { $anneeBissextile = 1; }
else { $anneeBissextile = 0; }
if ($anneeBissextile) { $jours_valides[1] = 29; }
else { $jours_valides[1] = 28; }
for(my $i = 1;$i <= 12;$i++) {
nbSec = nbSec + ($jours_valides[$i] * 24 * 60 * 60);
}
}
return $nbSec;
} |
Partager