Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/05/2008, à 15:12

Totor

[Résolu] ksh : calcul de date

Bonjour,

Est-il possible en ksh (ou awk) d'effectuer un calcul sur des dates ?
J'ai regardé rapidement avec awk mais il ne semble pas y avoir...
J'aimerai ajouter un nombre de jours à une date et en récupérer le résultat.

Je n'ai pas de perl, ruby ou autre... juste bc mais je connais pô yikes et je ne suis pas certain que l'on puisse d'ailleurs !

j'ai peure que ce ne soit pas possible... Et si c'est le cas, est-il possible de tester la validité d'une date, ce qui me permetterai d'écrire une routine effectuant le calcul.

merci

Dernière modification par Totor (Le 03/06/2008, à 14:45)


-- Lucid Lynx --

Hors ligne

#2 Le 28/05/2008, à 15:20

Totor

Re : [Résolu] ksh : calcul de date

j'ai trouvé ! big_smile

Exemple 1 : Quelle sera la date dans 10 jours ?

date +%d%m%Y --date "10 days next"

Exemple 2 : Quelle était la date il y a 10 jours ?

date +%d%m%Y --date "10 days ago"

Dernière modification par Totor (Le 28/05/2008, à 15:23)


-- Lucid Lynx --

Hors ligne

#3 Le 28/05/2008, à 15:47

Totor

Re : [Résolu] ksh : calcul de date

Oups, ça ne me convient pas en totalité ...

Je m'explique :
les exemples données effectuent le calcul d'après la date système.
mais comment faire pour une date quelconque ?


-- Lucid Lynx --

Hors ligne

#4 Le 03/06/2008, à 12:57

Totor

Re : [Résolu] ksh : calcul de date

up !


-- Lucid Lynx --

Hors ligne

#5 Le 03/06/2008, à 14:13

Alain.g

Re : [Résolu] ksh : calcul de date

Salut

Par exemple 10 jours avant le 28 novembre 2008 :

date +%d-%m-%Y --date '10 days ago 28 Nov 2008'

donne : 18-11-2008

10 jours après :

date +%d-%m-%Y --date '10 days 28 Nov 2008'

donne : 08-12-2008

Comme tu vois, je n'ai pas mis 'next' :  on ne doit pas avoir la même version, car dans la mienne 'next' est invalide.
Par exemple pour connaître la date dans 100 jours, je dois faire :
date --date '100 days'
et non date --date '100 days next' (qui renvoie une erreur).


Sinon on peut faire aussi des choses avec la version gnu de awk

gawk 'BEGIN {print strftime("%d-%m-%Y", mktime("2008 11 28 +240 0 0"))}'

donne aussi 08-12-2008

Dernière modification par Alain.g (Le 03/06/2008, à 14:20)


Xubuntu Karmic !

Hors ligne

#6 Le 03/06/2008, à 14:20

Totor

Re : [Résolu] ksh : calcul de date

merci.
probablement normal pour le "next" ... je suis sur RedHat - oup's (mais j'ai mes [KU]buntu en rentrant à la maison wink)

+%d-%m-%Y indique le format de sortie mais est-il possible de préciser celui de l'option --date ? (je trouve que le man est très pauvre à ce sujet)

Dernière modification par Totor (Le 03/06/2008, à 14:22)


-- Lucid Lynx --

Hors ligne

#7 Le 03/06/2008, à 14:32

Alain.g

Re : [Résolu] ksh : calcul de date

Je ne pense pas mais il y un peu de souplesse quand même
Par exemple le '28 nov 2008' peut également prendre la forme 2008-11-28:

date +%d-%m-%Y -d '10 days ago 2008-11-28'

Dans un script il sera assez facile de le mettre sour cette forme là

Autres possibilités pour moins 10 jours, plus 10 jours :

date +%d-%m-%Y -d '2008-11-28 -10 days'
date +%d-%m-%Y -d '2008-11-28 +10 days'

Dernière modification par Alain.g (Le 03/06/2008, à 14:39)


Xubuntu Karmic !

Hors ligne

#8 Le 03/06/2008, à 14:45

Totor

Re : [Résolu] ksh : calcul de date

ça, ça me convient tout à fait !

merci bien.


-- Lucid Lynx --

Hors ligne