[Bash / Perl] comparer deux dates

Fermé
Jamel - 23 juin 2005 à 15:16
[Dal] Messages postés 6204 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 27 février 2025 - 24 juin 2005 à 19:43
Bonjour,

Je souhaiterai comprarer deux dates en bash ou en perl.
Du genre :
Date1="23-06" (23 juin)
Date2="15-02"

if [ Date1 -lt Date2 ];
echo "ok"
fi

J'ai cherché du coté de date +%x pour obtenir la date, mais moi ce que je souhaiterai c'est de saisir au moins une des deux dates pour pouvoir la comparer avec la date courante.

Je vous remercie

2 réponses

[Dal] Messages postés 6204 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 27 février 2025 1 101
23 juin 2005 à 18:03
Salut Jamel,

Je n'ai pas bien compris ton histoire de "saisie".

Une solution, pour la comparaison, serait d'utiliser la commande "date" en convertissant les dates en secondes depuis Epoch et en comparant les valeurs.

man date


Dal
1
Salut,

je te remercie pour ta reponse, j'avais pas pensé a cette solution. Je vais l'essayer de suite :-)

Pour la saisie je sous entendait en fait, de creer un script dans lequel on passerait en parametre une date qui serait ensuite comparé avec d'autre date.

merci en tout cas
0
[Dal] Messages postés 6204 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 27 février 2025 1 101
24 juin 2005 à 19:43
Salut Jamel,

Sous bash, les paramètres de ligne de commande sont dans les variables $1, $2, ...

Tu peux faire un script comme celà qui teste l'existence d'un paramètre :

if [ -n "$1" ]
# Test if command line argument present (non-empty).
then
  lines=$1
else
  lines=$LINES # Default, if not specified on command line.
fi


Cet exemple est tiré de l'excellent "Advanced Bash-Scripting Guide" que tu trouveras sur l'Internet.

Il faudra que tu contrôles que le format dans lequel le paramètre est entré par l'utilisateur correspond à celui que tu spécifie pour la conversion de format.

Pour celà, tu pourras utiliser la sortie de la commande "date".


Dal
-1