2010-05-19 6 views
6

Existe-t-il un moyen de calculer un horodatage pour la prochaine mise en place d'un jour de la semaine? Donc, par exemple, vendredi, j'aimerais pouvoir exécuter du code qui calcule qu'à partir d'aujourd'hui mercredi 19/05/10, le vendredi suivant sera le 21/05/10 et on obtiendra un horodatage de il."Ce vendredi" dans le script bash

Je sais la commande date peut analyser une date de chaîne donnée selon un format, mais je ne peux pas comprendre comment calculer « vendredi prochain à partir d'aujourd'hui »

Toute idée?

EDIT: Je suis sur un mac

Répondre

11

Avec date GNU:

date -d 'this Friday' '+%d/%m/%y' 

Voir Relative items in date strings, une partie de la date GNU documentatoin. Il y a aussi examples.

+0

Si cette commande est exécutée le samedi/dimanche, est-ce qu'elle renvoie la date de cette semaine ou la date de la semaine prochaine? –

+0

@DJ, je pense qu'il revient toujours aujourd'hui ou un jour futur, dans les 7 jours du début d'aujourd'hui. Pour moi, c'est actuellement mercredi. le 19, donc 'ce mardi' donne mardi. le 25. Un point intéressant est que "ce mercredi" donne le 19ème, tandis que "mercredi prochain" est le 26ème. –

+0

Date de la semaine prochaine. Selon les docs 'date'," this "équivaut à ne rien spécifier, donc il cherche le vendredi suivant qui se produit. – porges

1

Comme aucun format n'a été spécifié, il est beaucoup plus simple:

date -d Fri 

« ce » est supposé défaut de valeur nominale, vendredi peut être abrégé. Comme il est juste un mot - ou le reste significatif de celui-ci, (demandez Th), il n'a pas besoin des devis comme

date -d "last Fri" 

serait.

+0

En arrivant tard dans le combat .. – Ben

+0

Oui, mais il a été lié sur le côté droit, lorsque vous travaillez à une question réelle (sur le vendredi avant une date aléatoire), alors j'ai pensé: visitez ce lien - la plupart des gens sous-estiment 'date'. –

+0

Bien sûr, je vais vous donner un point pour votre appréciation indissociable de la puissance de la date – Ben