OVH Cloud OVH Cloud

date: trouver le lundi de la Neme semaine

5 réponses
Avatar
Marc Boyer
Bonjour,

je cherche à demander à date de me donner le jour et le mois
du lundi de la Neme semaine, et je n'y arrive pas.

J'arrive à lui faire faire l'inverse (le jour de la semaine
et le numéro de semaine à partir du mois et du jours du mois)
mais pas ça.

Une piste ?

Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...

5 réponses

Avatar
Stephane Chazelas
2004-07-23, 13:13(+00), Marc Boyer:
je cherche à demander à date de me donner le jour et le mois
du lundi de la Neme semaine, et je n'y arrive pas.

J'arrive à lui faire faire l'inverse (le jour de la semaine
et le numéro de semaine à partir du mois et du jours du mois)
mais pas ça.
[...]


Et comment comptes-tu les semaines ? A la mode du %U, du %V ou
du %W de strftime ?

Si c'est comme le %W, avec le GNU date, tu peux faire:

n)
date -d "$(date +-%j) day $n monday"

--
Stephane

Avatar
Marc Boyer
Stephane Chazelas wrote:
2004-07-23, 13:13(+00), Marc Boyer:
je cherche à demander à date de me donner le jour et le mois
du lundi de la Neme semaine, et je n'y arrive pas.

J'arrive à lui faire faire l'inverse (le jour de la semaine
et le numéro de semaine à partir du mois et du jours du mois)
mais pas ça.
[...]


Et comment comptes-tu les semaines ? A la mode du %U, du %V ou
du %W de strftime ?


Avoir une solution, c'est déjà mieux que 0. Le passage
de 1 à 3 doit rajouter quelques lignes de shell, non ?

Si c'est comme le %W, avec le GNU date, tu peux faire:

n)
date -d "$(date +-%j) day $n monday"


Bon, je vais me replonger dans la page de man pour voir
comment cela marche.

Merci,
Marc Boyer

--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...


Avatar
Laurent Wacrenier
Marc Boyer écrit:
je cherche à demander à date de me donner le jour et le mois
du lundi de la Neme semaine, et je n'y arrive pas.


En perl, il y a un module qui fait ça ;

% perl -MDate::Calc=:all -le 'Language(2); print Date_to_Text_Long Monday_of_Week(10, 2004)'
Lundi 1 mars 2004

Avatar
Stephane Chazelas
2004-07-23, 14:27(+00), Laurent Wacrenier:
Marc Boyer écrit:
je cherche à demander à date de me donner le jour et le mois
du lundi de la Neme semaine, et je n'y arrive pas.


En perl, il y a un module qui fait ça ;

% perl -MDate::Calc=:all -le 'Language(2); print Date_to_Text_Long Monday_of_Week(10, 2004)'
Lundi 1 mars 2004


Ce doit donc etre le %V de strftime.

~$ date -d 2004-3-1 +%U
09
~$ date -d 2004-3-1 +%V
10
~$ date -d 2004-3-1 +%W
09

Pour info:

%V
Replaced by the week number of the year (Monday as
the first day of the week) as a decimal number
[01,53]. If the week containing 1 January has four
or more days in the new year, then it is considered
week 1. Otherwise, it is the last week of the
previous year, and the next week is week 1. Both
January 4th and the first Thursday of January are
always in week 1. [ tm_year, tm_wday, tm_yday]

(Le premier lundi de l'annee peut etre en semaine 2).

--
Stephane


Avatar
Laurent Wacrenier
Stephane Chazelas écrit:
En perl, il y a un module qui fait ça ;

% perl -MDate::Calc=:all -le 'Language(2); print Date_to_Text_Long Monday_of_Week(10, 2004)'
Lundi 1 mars 2004


Ce doit donc etre le %V de strftime.


C'est à dire la définition ISO 8601 :
http://www.cl.cam.ac.uk/~mgk25/iso-time.html

On peut le noter 2004-W10-1.