Présentation de la version 1

2010-01-08 Calcul d'un intervalle de dates

Comment calculer en ligne de commande la durée entre deux dates.

Pour tester la consommation de mon vieux dinosaure de frigo, j'ai effectué une mesure sur plusieurs jours avec le petit appareil adhoc. Malheureusement, comme le moteur d'un frigo ne fonctionne que par intermittence, ce genre d'appareil n'effectue son calcul que pour le temps correspondant à une demande de courant. Pour connaître la consommation sur la durée d'utilisation effective du frigo, il fallait donc noter la date de début et de fin de cette mesure et procéder à quelques petits calculs.

Le calcul de ce genre d'intervalle doit se faire sur une base de secondes.

La commande date permet d'afficher une date en secondes depuis « 00:00:00 1970-01-01 UTC », la fameuse epoch (c'est dans la page de man).

Elle permet aussi d'afficher une autre date que la date courante gràce à l'option --date="xxx".

On peut donc faire le calcul en sauvegardant le début et la fin de l'intervalle dans des variables:

 $ FIN=`date +%s --date="05 Jan 2010 21:30"`
 $ echo $FIN
 1262723400
 $ DEBUT=`date +%s --date="23 Dec 2009 10:38"`
 $ echo $DEBUT
 1261561080
 $ echo $(($FIN - $DEBUT))
 1162320