#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;
