précédant | suivant | a propos | sommaire
sous-programme

FrDate4Now


Donne l'heure et la date en français pour l'instant présent sous le formatage que vous désirez par $mod_affichage. par défaut:
   $mod_affichage => Mercredi 12/12/2003 18:45
mais peut sortir la date sous forme 200312121845 (pour inclure dans le nom d'un fichier)
ou verbeux comme:
Mercredi 12 Décembre 2003 à 18heure 45min

il est trés pratique car appelé par n'importe quel script en 1 ligne: $fdt = do ('FrDate4Now.pl');

#package FrDate4Now;

=head1 NOM

  FrDate4Now - donne l heure et la date en français

=head1 SYNTHAXE
  
  use FrDate;
  $fdt = fdtn($mod_affichage);  # donne la date actuelle comme  Mercredi 11/12/2003 18:45 ou Mercredi 11 Decembre 2003 à 18h 45min ou 11/12/2003 ou 20031211184503

  use FrDate;
  $frd = ffdt($file, $opd, $modep);   # done la date suivant ($opd:dernier access, modif,chang) du fichier en francais au format suivant ($modep: Mercredi 11/12/2003 18:45 ou 20031211 ou 20031211184503).

=head1 DESCRIPTION

  La variable scalaire retourné par le module sera une date en français
  formater selon votre besoin pour: 
    B<l'heure actuelle (maintenant)> avec:
    $dtn = fdtn($mod_affichage) ou $mod_af un nombre de 0 à 2 affichant
    pour 0 la date comme: Mercredi 11/12/2003 18:45   (par defaut)
    pour 1 la date comme: Mercredi 11 Decembre 2003   (pour la Secla)
    pour 2 la date comme: Mercredi 11 Decembre 2003 17heure 45min  (long Secla)
    pour 3 la date comme: 20031211                   (pour liste et filename)
    pour 4 la date comme: 20031211184503           (pareil avec h, min et sec)

=cut


# constantes
@lsjour = qw(
        Dimanche
        Lundi
        Mardi
        Mercredi
        Jeudi
        Vendredi
        Samedi
        )
;

for $i(0 ..6) {
  
$fj{$i} = $lsjour[$i];
}

@lsmois = qw(
        Janvier
        Février
        Mars
        Avril
        Mai
        Juin
        Juillet
        Aout
        Septembre
        Octobre
        Novembre
        Décembre
        )
;
for $i(0..11) {
  
$fm{$i} = $lsmois[$i];
}

&fdtn($mod_affichage);
# ici la fonction fdtn($mod_affichage)

sub fdtn($mod_affichage) {
  
my ($mod_affichage) = @_;

  
$min =(localtime(time()))[1];
  
$h =(localtime(time()))[2];
  
$mois =(localtime(time()))[4];
  
$smois = $fm{$mois};
  
$an =(localtime(time()))[5];
  
$sjour =(localtime(time()))[6];
  
$fjour = $fj{$sjour};
  
$datos = localtime (time);
  
@lstnow = localtime (time());
  
$j = $lstnow[3];
  
$m = $lstnow[4]+1;
  
if ($min <= 9) {
    
$min = "0" . $min;
  
}
  
if ($h <= 9) {
    
$h= "0" . $h;
  
}
  
if ($j <= 9) {
    
$j= "0" . $j;
  
}
  
if ($m <= 9) {
    
$m = "0" . $m;
  
}
  
if ($an >= 100) {
    
$an=~ s/1()/20/;
  
}
  
else {
    
$an= "1" . $an;
  
}
# les format d'heures dessous fonctionne en centieme et milleme de journée
# les intégrer au module si le besoin est décommenter la région jusqu'a ***
#  # pour centieme de journée exp: 25 = 25% de journée ou 25 quart d'heures (99 = 1440min = 24h)
#  $tmp_h2m = ($h * 60) + $min;
  
#  # ---- pour $qdh (quantité de jour exprimé de 01~99) ------
#  $qdh = int ($tmp_h2m/14.5); # pour avoir le centieme de journée sur 2chiffres de 01 à 99
#  if ($qdh <= 9) {
#    $qdh = "0" . "$qdh";
#  }
  
#  # ---------- pour $qdh (quantité de jour exprimé de 01~99) ------- uncomment
  
#  if ($qdh <= 9) {
#    $qdh = "0" . "$qdh";
#  }
# ---------------------------------------- ***
# ---------- pour $qdm (quantité de jour exprimé de 001~999)------ 
  
  
$qdm = int ($tmp_h2m/1.44); # pour avoir le milliéme de journée sur 3chiffres de 1 à 999
  
if ($qdm <= 9) {
    
$qdm = "00" . "$qdm";
  
}
  
elsif ($qdm <= 99) {
    
$qdm = "0" . "$qdm";
  
}
  
  
#---------les differants formats
  
# Mercredi 30/07/2003 17:30
  
$ma_date_v = "$fjour  $j\/" . "$m\/" . "$an" . ":" . "$h" . ":$min";
  
# Mercredi 30 Juillet 2003
  
$df_long = "$fjour $j $smois $an";
  
# Mercredi 30 Juillet 2003 à 17heure 30min
  
$df_vlong = "$fjour $j $smois $an à $h" . "heure $min" . "min";
  
#20030730
  
$dtc = "$an" . "$m" . "$j";
  
# 20030730:72
  
$ma_date = "$an" . "$m" . "$j" . ":" . "$qdh"; 
  
# 20030730:726                  
  
$ma_date_h = "$an" . "$m" . "$j" . ":" . "$qdm";                      
  
$dt = $ma_date_v;
  
  
if ($mod_affichage == 1) {
    
$fdt = $df_long;
    
#return $fdt;
  
}
  
elsif ($mod_affichage == 2) {
    
$fdt = $df_vlong;
   
# return $fdt;
  
}
  
elsif ($mod_affichage == 3) {
    
$fdt = $dtc;
   
# return $fdt;
  
}
  
elsif ($mod_affichage == 4) {
    
$fdt = $ma_date_h;
   
# return $fdt;
  
}
  
else {
    
$fdt = $ma_date_v;
   
# return $fdt;
  
}
}


# écrit par alain Adelmar aadelmar@free.fr
# publié sur http://aadelmar.free.fr/FrDate4Now.html
# adresse: 6 rue de Tunis 33600 Pessac

END;


END;


précédant | suivant | a propos | sommaire
sous programme Perl appelé appelé du script par: $dtf = do ('FrDate4Now.pl'); en ayant au préalable défini $mod_affichage qui par défaut sont = 0; (lire la doc) écrit par alain Adelmar le 13 Décembre 2003