Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment avoir les dates d'une semaine à partir du n° de la semaine?

3 réponses
Avatar
coral
Bonjour,

j ai par exemple la semaine 30 de l'année 2004.

Comment se débrouiller pour trouver que la semaine 2004 commence du lundi 5
septembre au dimanche 11 septembre 2004 (ce n'est qu un exemple complètement
faux)


merci de votre aide !

3 réponses

Avatar
Julien Signoles
Bonjour,

j ai par exemple la semaine 30 de l'année 2004.

Comment se débrouiller pour trouver que la semaine 2004 commence du lun di 5
septembre au dimanche 11 septembre 2004 (ce n'est qu un exemple complèt ement
faux)


Une fois qu'on connaît le Jour Julien correspondant à une date, c'est
trivial:

=====
Soit respectivement w et y, la semaine et l'année considérées.
soit d = jour_julien (1er janvier y)
soit d' = d - d mod 7 (* 1er jour de la semaine du 1er janvier *)
soit b = d' + 7 * (w - 1) (* 1er jour de la semaine w *)
soit e = b + 6 (* dernier jour de la semaine w *)
retourner b et e
=====

On peut bien sûr retourner b et e (qui sont ici exprimées en Jour Julie n)
sous un autre format de date si on le souhaite.

Pour calculer le Jour Julien, on peut par exemple utiliser l'algorithme
proposé ici à la section 2.15.1 :

http://www.tondering.dk/claus/calendar.html

<pub>
Pour une implémentation en Objective Caml (je sais, on est sur un forum
Java ici), voir la bibliothèque calendar que je propose sur le site
ci-dessous. La fonction en question s'appelle [week_first_last] dans le
module [Date].

http://www.lri.fr/~signoles/prog.fr.html
</pub>

Cordialement,
Julien Signoles

P.S.: AMHA, ce genre de question a plus sa place sur
fr.comp.lang.algorithme qu'ici...

--
mailto: ; http://www.lri.fr/~signoles
"In theory, practice and theory are the same,
but in practice they are different" (Larry McVoy)

Avatar
Marc Petit-Huguenin
coral wrote:
Bonjour,

j ai par exemple la semaine 30 de l'année 2004.

Comment se débrouiller pour trouver que la semaine 2004 commence du lundi 5
septembre au dimanche 11 septembre 2004 (ce n'est qu un exemple complètement
faux)


merci de votre aide !





Calendar calendar = new GregorianCalendar();
DateFormat format = DateFormat.getDateInstance();

calendar.set(Calendar.YEAR, 2004);
calendar.set(Calendar.WEEK_OF_YEAR, 1);

calendar.set(Calendar.DAY_OF_WEEK, 1);

System.out.println(format.format(calendar.getTime()));

calendar.add(Calendar.DAY_OF_WEEK, 7);
System.out.println(format.format(calendar.getTime()));

Avatar
Philippe Vandenbulcke
Bonjour,

j ai par exemple la semaine 30 de l'année 2004.

Comment se débrouiller pour trouver que la semaine 2004 commence du lundi 5
septembre au dimanche 11 septembre 2004 (ce n'est qu un exemple complètement
faux)


merci de votre aide !



Vas un peu voir la doc de java.util.GregorianCalendar


Tu peux manipuler si tu comptes à partir de dimanche ou à partir de
lundi et obtenir tout ce que veux en dates et manips de mois, semaines,
jours, moments, durées, jusqu'au passage d'un calendrier à un autre
(undecember!)

Philippe Vandenbulcke