Bonjour,

J'ai une function utilisant java.util.Date pour calculer le nombre de jours entre les deux dates données:

static final long MILISECOND_PER_DAY = 24 * 60 * 60 * 1000;
public static long nbDays(Date startDate, Date endDate)
{
return (long)Math.floor((endDate.getTime() - startDate.getTime()) / MILISECOND_PER_DAY;
}


Pour certaines dates cette fonction ne marche pas (avec le passage de l'horaire été et l'hiver)

2001-01-01, 2007-03-24 ---> 2272
2001-01-01, 2007-03-25 ---> 2273
2001-01-01, 2007-03-26 ---> 2273
2001-01-01, 2007-03-27 ---> 2274


J'ai essayé d'utiliser le Calendar/GregorianCalendar ce me donne aussi des résultats incorrects.

Est-ce-que java.util.Date, Calendar, GregorianCalendar sont buggés ou j'utilise mal ces fonctions?


Entretemps, j'essais le joda API ceci me donne des résultats corrects.


Merci.

ttttnht