Création
d'entreprise
Posez votre question Signaler

[Shell Unix] Manipulation de date

bstevy 1Messages postés 11 juin 2009Date d'inscription - Dernière réponse le 11 juin 2009 à 15:22
Bonjour à tous,
Voila, j'ai un problème que j'espère l'un d'entre vous saura résoudre.
Le principe est simple :
Je possède une date au format AAMMJJ (ex pour aujourd'hui : 090610) et tous un tas d'autres dates au même format. Dans mon shell, j'introduit un nombre (de jours) en paramètre et je dois faire a partir de là, ma date principale moins mon nombre de jours en parametre. Ensuite, je dois comparer cette nouvelle date avec les autres et récupérer tous les dates de ma liste étant plus petite.
J'ai déjà considéré ma date comme un entier... mais ca pose des problèmes. Si je suis le 1 juin, et que je fais -5 jours, en laissant la date en entier, ca me fait 090601-5=090596 qui est donc plus grand que le 31 Mai (090531) alors que ma date moins 5 c'est le 26 Mai... cette solution marche quand il n'y a pas de saut de moi, mais ca sera pas tjrs le cas, donc il me faut une autre solution
je pense qu'on doit pouvoir convertir la date en date julienne, genre, juste en nombre de jours, et comparer les deux a partir de la, mais je sais pas comment faire... ou alors en timestamp, c'est a dire en seconde, et enlever le nombre de seconde correspondant a 1 jours... mais je sais pas non plus comment faire. Ceci n'est que des idées parmi d'autres... et si vous en avez des meilleures, elles sont les bienvenues !!
Voila, donc si vous avez des pistes de solution, je les prends avec plaisir.
Merci d'avance pour vos réponse.
Steven
Lire la suite 

[Shell Unix] Manipulation de date »

2 réponses
Réponse
+1
moins plus
Salut,

Et plus simplement :
date --date='090610 5 days ago' +%y%m%d
;-))
Ajouter un commentaire
Réponse
+0
moins plus
hello
ll faut convertir tes dates en secondes, il est alors facile de comparer et d'enlever ou d'ajouter des jours (24 * 3600)
$ date --date "090611" +"%Y %m %d"
2009 06 11
$ date --date "090611" +%Y%d%m
20091106
$ date --date "090611" +%s
1244671200
$ date +%s
1244725309
$ date --date=@1244725309
Thu Jun 11 15:01:49 CEST 2009
$ date --date=@1244725309 +"%Y %m %d"
2009 06 11
Ajouter un commentaire
Ce document intitulé « [Shell Unix] Manipulation de date » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?