Changement du jour de la semaine avec java.util.GregorianCalendar
Bonjour,
Je rencontre de grandes difficultés avec la fonction set de GregorianCalendar quand il s'agit de changer le jour de la semaine. Je n'arrive pas toujours à reproduire le comportement qui me paraît suspect.
Après trois bonnes heures de tatonnement pour le reproduire , j'en arrive à cela :
Code:
1 2 3 4 5 6
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
GregorianCalendar ld_date = (GregorianCalendar)date.clone();
String ls_date = simpleDateFormat.format(ld_date.getTime());
ld_date.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.TUESDAY);
ls_date = simpleDateFormat.format(ld_date.getTime()); |
En paramètre au code de la fonction ci-dessus je transmet date une instance de GregorianCalendar, dont la valeur est le 11 février 2007 00:00:00
La variable ls_date contient la chaîne de caractère 2007-02-06. C'est juste, n'est-ce-pas ?
Je modifie mon code pour obtenir :
Code:
1 2 3 4 5 6
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
GregorianCalendar ld_date = (GregorianCalendar)date.clone();
//String ls_date = simpleDateFormat.format(ld_date.getTime());
ld_date.set(GregorianCalendar.DAY_OF_WEEK,GregorianCalendar.TUESDAY);
String ls_date = simpleDateFormat.format(ld_date.getTime()); |
La variable ls_date contient la chaîne de caractère 2007-02-11. C'est étonnant, non ?
Voyez-vous une explication à cela ?
Parvenez-vous à reproduire ce constat ?