Pb de de Calendar

BookerT Messages postés 4 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 4 août 2004 - 4 août 2004 à 17:01
jogsx Messages postés 4 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 4 août 2004 - 4 août 2004 à 18:31
Salut tt le monde

J'utilise le constructeur New GregorianCalendar() pour avoir la date, il me donne bien le jour et l'annee mais il me donne le mois precedent: c.a.d il me donne 4/7/2004 au lieu de 4/8/2004 ...... je comprends pas pkoi... si qq1 peut m'aider...
Merci d'avance

2 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
4 août 2004 à 17:09
:big) Neodante :big)

A moins que tu te sois planté quelques part dans ton code ... je ne vois pas pourquoi !!! Ca a toujours bien marché avec moi et les autres (bon d'accord sauf toi qui semble avoir un petit prob !! lol), sinon regarde la date système de ton PC ... si tu le fais avec les millisecondes ....
@+

[Responsable www.neogamedev.com]
0
jogsx Messages postés 4 Date d'inscription mardi 2 septembre 2003 Statut Membre Dernière intervention 4 août 2004
4 août 2004 à 18:31
C'est normal, et cela vient du fait que le champ MONTH accepte les valeurs allant de 0 (pour janvier) à 11 (pour décembre).

Va voir le lien ci-dessous qui le décrit clairement :
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#MONTH

J'ai un petit exemple vite fait qui part de la date courante (04/08/2004 pour le 4 août 2004 !!) et bascule en 2005, puis en 2003.

GregorianCalendar c = new GregorianCalendar(2004,7,4); // 04/08/2004 !!!!!!

System.out.println("Date initiale : "+String.valueOf(c.get(5))+"/"+String.valueOf(c.get(2))+"/"+String.valueOf(c.get(1)));

c.add(6,150) ; // On ajoute 150 jours ==> passage 01/01/2005.

System.out.println("Date initiale + 150 j : "+String.valueOf(c.get(5))+"/"+String.valueOf(c.get(2))+"/"+String.valueOf(c.get(1)));

c.add(6,-150); // On retire 150 jours ==> retour 04/08/2004.

System.out.println("Date modifiée - 150 j : "+String.valueOf(c.get(5))+"/"+String.valueOf(c.get(2))+"/"+String.valueOf(c.get(1)));

c.add(6,-217); // On retire 217 jours ==> passage 31/12/2003
System.out.println("Date initiale - 217 j : "+String.valueOf(c.get(5))+"/"+String.valueOf(c.get(2))+"/"+String.valueOf(c.get(1)));

J'espère que ça répond à ta question.
Gsx
0
Rejoignez-nous