Bonjour,
J'avais besoin d'une fonction java qui me permettait de calculer le nombre de jour en 2 deux dates. Après une recherche sur Internet, j'avais trouvé ce code.
Celui-ci marche parfaitement sauf pour le mois de mars. Si j'indique du 1er au 31 mars 2010, la fonction me retourne 29 jours au lieu des 30 jours. J'imagine que c'est un problème de millisecondes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 // calcul du nombre de jours de la période long CONST_DURATION_OF_DAY = 1000l * 60 * 60 * 24; Calendar calendar1 = new GregorianCalendar(); calendar1.set(Calendar.YEAR, Integer.parseInt(getDECOMPTE_PERIODE_DEBUT().getData().substring(4,8))); calendar1.set(Calendar.MONTH, Integer.parseInt(getDECOMPTE_PERIODE_DEBUT().getData().substring(2,4))-1); calendar1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(getDECOMPTE_PERIODE_DEBUT().getData().substring(0,2))); Date date1 = calendar1.getTime(); Calendar calendar2 = new GregorianCalendar(); calendar2.set(Calendar.YEAR, Integer.parseInt(getDECOMPTE_PERIODE_FIN().getData().substring(4,8))); calendar2.set(Calendar.MONTH, Integer.parseInt(getDECOMPTE_PERIODE_FIN().getData().substring(2,4))-1); calendar2.set(Calendar.DAY_OF_MONTH, Integer.parseInt(getDECOMPTE_PERIODE_FIN().getData().substring(0,2))); Date date2 = calendar2.getTime(); // Différence long diff = Math.abs(date2.getTime() - date1.getTime()); long numberOfDay = (long)diff/CONST_DURATION_OF_DAY;
Quelqu'un a-t-il eu le même problème ?
Merci d'avance pour toutes réponses.
B. Mathieu
Partager