Voila, j'ai fait une fonction qui a pour but de renvoyer un objet Date correspondant au premier jour du mois de la Date passée en entrée.
ex : PremierJour(15/05/2010)->01/05/2010
J'utilise pour cela un Gregorian Calendar et un SimpleDateFormat.
Voici le code que j'utilise :
et voila la trace de sortie !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 GregorianCalendar cal2 = new GregorianCalendar(2010,5,15); System.out.println("num of day="+cal2.get(Calendar.DAY_OF_MONTH)); int nbDiff2=cal2.get(Calendar.DAY_OF_MONTH)-1; System.out.println("diff="+nbDiff2); System.out.println("now in millis ="+cal2.getTimeInMillis()); long diff2=cal2.getTimeInMillis()-(nbDiff2*24*3600*1000); System.out.println("now in millis-diff="+diff2); Date d2=new Date(diff2); SimpleDateFormat sdf2=new SimpleDateFormat("dd/MM/yyyy"); System.out.println("Date = "+d2); System.out.println("formatted Date = "+sdf2.format(d2).toString());
Aussi tordus qu'ils soient, mes calculs sont justes. C'est au niveau du parsing de la nouvelle date que ça merde. Si je mets en entrée 15/04, le résultat sera 1/05,etc.num of day=15
diff=14
now in millis =1276552800000
now in millis-diff=1275343200000
Date = Tue Jun 01 00:00:00 CEST 2010
formatted Date = 01/06/2010
Une idée ?
merci d'avance
Partager