Ceci est une ancienne révision du document !


Bash Fonction Utile


Date sous la forme : 2006-10-01 15:00

date2stamp () {
    date --utc --date "$variableDate" +%s
}
stamp2date (){
    date --utc --date "1970-01-01 $Timestamp sec" "+%Y-%m-%d %T"
}
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))
}

Prend 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”
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.

  • prog/bashfonctutile.1484134139.txt.gz
  • Dernière modification : 08/12/2018 09:21
  • (modification externe)