time
,
localtime
et
stat
suffirons pour votre bonheur,
d'à partir de là tout est possible (et en plus, c'est
fastoche).time
et stat
retourne un chiffre de
l'ordre de 1272119599 (qui est le nombre de sec écouler depuis
l'origine jusqu'au sam 24 avril 2010 à 16h35) et que quand il
affichera 1 300 000 000 on sera le dimanche 13 mars 2011.# 0 1
2 3
4 5
6 7 8
($sec,$min,$heure,$mjour,$mois,$annee,$sjour,$ajour,$isdst) =
localtime(time);
champ |
exp var |
description |
0 |
$sec |
nombre de secondes
écoulé dans la minute |
1 |
$min |
nombre de minutes
écoulé dans l'heure |
2 |
$heure |
nombre d'heures
écoulé dans la journée |
3 |
$mjour |
nombre de jour
écoulé dans le mois |
4 |
$mois |
nombre de mois
écoulé dans l'année (
0 pour Janvier et 11 pour Décembre) |
5 |
$année |
nombre d'années
écoulé depuis 1900 (donc
pour avoir l'année effective $année +=1900 )si par contre on désire afficher la date style 02 ( $année
= sprintf("%02d", $année % 100); ) |
6 |
$sjour |
nombre de jours
écoulé dans la semaine (Dim étant le jour 0 et
Lundi le jour 1) |
7 |
$ajour |
nombre de jour écoulé dans l'année |
8 |
$isdst |
est vrai si l'heure
d'été est en cours à la date
spécifié et faux sinon. |
my $file = "./foo.log";
my $der_acces = (stat($file))[8];
($sec,$min,$heure,$mjour,$mois,$annee,$sjour,$ajour,$isdst)
= localtime($der_acces);
my @sjour = qw( Dim Lun Mar Mer Jeu Ven Sam);
my @smois = qw ( Janvier Février Mars Avril Mai Juin Juillet
Aout Septembre Octobre Novembre Décembre );
my $date_dac = "
$sjour[$sjour] $mjour $smois[$mois] " .
$année += 1900 . " - $heure:$min:$sec";
print "$date_dac\n";
sub der_acces($file) {
my $file=@_;
my $der_acces =
(stat($file))[8];
($sec,$min,$heure,$mjour,$mois,$annee,$sjour,$ajour,$isdst) =
localtime($der_acces);
my @sjour = qw( Dim Lun Mar Mer Jeu Ven Sam);
my @smois = qw ( Janvier Février Mars Avril
Mai Juin Juillet Aout Septembre Octobre Novembre Décembre );
my $date_dac = "
$sjour[$sjour] $mjour
$smois[$mois] " . $année += 1900 . " - $heure:$min:$sec";
return $$date_dac;
}
# traitement du temps pour date et heure en français
(my $sec,my $min,my $heure,my $mjour,my $mois,my $annee,my $sjour,my
$ajour,my $isdst) = localtime(time);
my @lssjour = qw( Dim Lun Mar Mer Jeu Ven Sam);
my @lssmois = qw ( Janvier Fevrier Mars Avril Mai Juin Juillet Aout
Septembre Octobre Novembre Decembre );
# $french_date_now vous donne la date et l'heure de l'instant
présent
my $french_date_now = "$lssjour[$sjour] $mjour $lssmois[$mois] " .
($annee+=1900) . " - $heure:$min:$sec";
#remplacer "./lisezmoi" par le nom complet du fichier que vous
désirez dater
my $file = "./lisezmoi";
my $mode = "acces"; #
vous pouvez changer acces par change ou modif (a,c,m la premiere lettre
suffit)
my $datenum = 0;
# voila le resultât (la date en français formater et
l'heure) sont dans $fr_date_file
my $fr_date_file = &datefile($mode);
print "$fr_date_file\n";
sub datefile {
($mode = 8) if ($mode=~ /^a/);
($mode = 9) if ($mode=~ /^m/);
($mode = 10) if ($mode=~ /^c/);
print "mode vaut : $mode\n";
$datenum = ((stat($file))[$mode]);
print "$datenum\n";
(my $sec,my $min,my $heure,my $mjour,my $mois,my $annee,my
$sjour,my $ajour,my $isdst) = (localtime($datenum));
my $fr_date_file = "$lssjour[$sjour] $mjour $lssmois[$mois] " .
($annee+=1900) . " - $heure:$min:$sec";
return $fr_date_file;
}