Ceci est une ancienne révision du document !
Bash Fonction Utile
Date
Date => Timestamp
Date sous la forme : 2006-10-01 15:00
date2stamp () { date --utc --date "$variableDate" +%s }
Timestamp => Date
stamp2date (){ date --utc --date "1970-01-01 $Timestamp sec" "+%Y-%m-%d %T" }
Différence Date
dateDiff (){ case $1 in -s) sec=1; shift;; -m) sec=60; shift;; -h) sec=3600; shift;; -d) sec=86400; shift;; *) sec=86400;; esac dte1=$(date2stamp $1) dte2=$(date2stamp $2) diffSec=$((dte2-dte1)) if ((diffSec < 0)); then abs=-1; else abs=1; fi echo $((diffSec/sec*abs)) }
Peut prendre un paramètre :
- -s résultat en seconde
- -m résultat en minute
- -h résultat en heure
- -d résultat en jour (par Défaut)
Exemple :
- dateDiff -s “2006-10-01” “2006-10-32”
- dateDiff -m “2006-10-01” “2006-10-32”
- dateDiff -h “2006-10-01” “2006-10-32”
- dateDiff -d “2006-10-01” “2006-10-32”
- dateDiff “2006-10-01” “2006-10-32”
Fonctionne aussi avec l'heure seul :
- dateDiff -s “17:55” “23:15:07”
- dateDiff -m “17:55” “23:15:07”
Calcul de Date
echo $(date +%Y-%m-%d) echo $(date +%Y-%m-%d -d '-2 days')
Le resultat donne :
2017-01-11 2017-01-09
L'argument -d permet de décrire une action avec une chaine de caractère.