Les différents formats de date sous Linux

Sous Linux, la fonction date permet d'afficher la date du jour ou une date définie sous différentes formes.

Le script suivant (afficheDate.sh), associé au fichier contenant les différentes fonctions utilisées (fonctions.inc.sh) affiche différentes informations sur la date du jour.

$ nl afficheDate.sh
     1  #!/usr/bin/bash
     2  SCRIPTDIR="."
     3  . $SCRIPTDIR/fonctions.inc.sh
     4  echo "Date au format aaaa_mm_jj : `getDate`"
     5  echo "Année : `getYear`"
     6  echo "Mois : `getMonth`"
     7  echo "Jour : `getDay`"
     8  echo "Nous sommes le `getJourDate` `getDay` `getMoisDate` `getYear`"
     9  echo "Nous sommes en semaine `getNumSemaine`"
    10  echo "Nous sommes le `getNumDay` jour de l'année"
    11  echo "Nous sommes le `getNumDayWeek` jour de la semaine"
    12  echo "Cette année il y a `nbJourAnnee` jours"
    13  echo "Il reste `nbResteJour` jour(s) avant la fin de l'année"
    14  echo "Cette année il y a `nbSemAnnee` semaines"
    15  echo "Il reste `nbResteSemaine` semaine(s) avant la fin de l'année"
$

$ nl fonctions.inc.sh
     1  function getDate {
     2          date '+%Y_%m_%d'
     3  }
     4  function getYear {
     5          date '+%Y'
     6  }
     7  function getMonth {
     8          date '+%m'
     9  }
    10  function getDay {
    11          date '+%d'
    12  }
    13  function getJourDate {
    14          date '+%A'
    15  }
    16  function getMoisDate {
    17          date '+%B'
    18  }
    19  function getNumSemaine {
    20          date '+%V'
    21  }
    22  function getNumDay {
    23          typeset jour
    24          jour=`date '+%j'`
    25          case "$jour" in
    26                  1)
    27                          echo "1 er"
    28                          ;;
    29                  *)
    30                          echo "$jour ème"
    31                          ;;
    32          esac
    33  }
    34  function getNumDayWeek {
    35          typeset jour
    36          jour=`date '+%u'`
    37          case "$jour" in
    38                  1)
    39                          echo "1 er"
    40                          ;;
    41                  *)
    42                          echo "$jour ème"
    43                          ;;
    44          esac
    45  }
    46  function nbJourAnnee {
    47          typeset jour
    48          typeset mois
    49          typeset annee
    50          jour=31
    51          mois=12
    52          annee=`getYear`
    53          date -d $mois'/'$jour'/'$annee '+%j'
    54  }
    55  function nbResteJour {
    56          typeset jour
    57          typeset nbJourAnnee
    58          typeset nbJourRestant
    59          jour=`date '+%j'`
    60          nbJourAnnee=`nbJourAnnee`
    61          ((nbJourRestant=nbJourAnnee-jour))
    62          echo $nbJourRestant
    63  }
    64  function nbSemAnnee {
    65          typeset jour
    66          typeset mois
    67          typeset annee
    68          jour=31
    69          mois=12
    70          annee=`getYear`
    71          date -d $mois'/'$jour'/'$annee '+%V'
    72  }
    73  function nbResteSemaine {
    74          typeset numSem
    75          typeset nbSem
    76          typeset nbSemReste
    77          numSem=`getNumSemaine`
    78          nbSem=`nbSemAnnee`
    79          ((nbSemReste=nbSem-numSem))
    80          echo $nbSemReste
    81  }
$

Exécution du script :

$ ./afficheDate.sh
Date au format aaaa_mm_jj : 2011_12_19
Année : 2011
Mois : 12
Jour : 19
Nous sommes le Monday 19 December 2011
Nous sommes en semaine 51
Nous sommes le 353 ème jour de l'année
Nous sommes le 1 er jour de la semaine
Cette année il y a 365 jours
Il reste 12 jour(s) avant la fin de l'année
Cette année il y a 52 semaines
Il reste 1 semaine(s) avant la fin de l'année
$

Etiquettes: 

Ajouter un commentaire

Filtered HTML

  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Tags HTML autorisés : <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Les lignes et les paragraphes vont à la ligne automatiquement.

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de messagerie électronique sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
CAPTCHA
Cette question permet de s'assurer que vous êtes un utilisateur humain et non un logiciel automatisé de pollupostage.
CAPTCHA visuel
Entrez les caractères (sans espace) affichés dans l'image.