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 :
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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());
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 :
La variable ls_date contient la chaîne de caractère 2007-02-11. C'est étonnant, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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());
Voyez-vous une explication à cela ?
Parvenez-vous à reproduire ce constat ?
Partager