Bug de Date ??

Résolu
cs_valx Messages postés 3 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 30 novembre 2005 - 30 nov. 2005 à 10:02
cs_valx Messages postés 3 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 30 novembre 2005 - 30 nov. 2005 à 13:07
Bonjour,

J'avoue que j'y comprend pas tout :

J'ai une date :

Calendar d = new GregorianCalendar();

Je positionne Le mois sur Février :
d.set(Calendar.MONTH, 1);
Je l'affiche :
out.println("
Mois : "+d.get(Calendar.MONTH));
et devinez quoi il m'affiche 2 !!!!!!

J'ai testé les autres mois :
for(int i = 0;i<12;i++)
{
d.set(Calendar.MONTH, i);
out.println("
Mois : "+d.get(Calendar.MONTH));
}
Résultat :
i : 0 Mois : 0
i : 1 Mois : 2
i : 2 Mois : 2
i : 3 Mois : 3
i : 4 Mois : 4
i : 5 Mois : 5
i : 6 Mois : 6
i : 7 Mois : 7
i : 8 Mois : 8
i : 9 Mois : 9
i : 10 Mois : 10
i : 11 Mois : 11

C'est un bug de Calendar.set ou quoi ??
Merci pour vos lumières éventuelles...

3 réponses

cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
30 nov. 2005 à 10:56
Ce n'est pas un bug, c'est normal. Nous sommes le 30 donc si tu affectes le mois à Février, il ne trouve pas de 30 Février donc il fait la différence entre le nombre de jours du mois et la date indiquée. 30 Février = 2 Mars.

Il faut donc positionner aussi le jour par exemple au 1er et tu n'auras aucun pb.

"A game is a series of interesting choices." Sid Meier
3
cs_valx Messages postés 3 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 30 novembre 2005
30 nov. 2005 à 10:24
J'ai réussi à trouver une parade, je teste le mois auquel je veux fixer ma date et s'il est égal à 1 j'enleve 1 (pas très clair tout ça!!)
Ex :
d.set(Calendar.MONTH, mois);
if(mois==1){d.add(Calendar.MONTH,-1);}
Et là j'ai mon mois de février.

Par contre je sais toujours pas si c'est un bug .......
0
cs_valx Messages postés 3 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 30 novembre 2005
30 nov. 2005 à 13:07
Tu as raison et le pire c'est que je fixe à 1 le jour mais je le fais plus loin dans mon script. En inversant les lignes ça marche !!
0
Rejoignez-nous