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
$