mercredi 15 avril 2009

Connaître son âge en secondes

Voila le truc complètement inutile, donc "rigoureusement indispensable" : connaître son âge en secondes.
Ça fonctionne sous linux (et très probablement sous d'autres Unix), et est basé sur la commande date.
Voici le code:

#!/bin/bash
if [[ "$1" == "" ]]; then
echo entrez votre date de naissance en paramètre
echo exemple:
echo $0 \"1979/09/18 03:00\"
exit 1
fi

d1=`date -d "$1" +%s`
d2=`date +%s`
let d3=$d2-$d1
echo Votre age en secondes = $d3

let d4=$d1+1000000000
echo Vous aurez 1 milliard de secondes d\'age le `date -d @$d4`

Explications:
date -d "2005/07/13 20:45:00" +%s donne le nombre de secondes (+%s) qui se sont écoulées entre le 1° janvier 1970 à 00h00m00s et le 13 juillet 2005 à 20h45m0s
Sans l'option -d, date utilise la date et l'heure actuelle, qu'on récupère en nombre de secondes.
Une différence, et le tour est joué.

Pour faire l'inverse (connaître une date depuis un nombre de secondes, il faut utiliser la forme @ pour l'option -d

Ce qui fait que j'aurais un milliard de secondes d'existence le vendredi 27 mai 2011.
C'est pas la classe ? :D

Aucun commentaire: