import java.util.GregorianCalendar;
public class FullYear {
public static void main(String[] args) {
GregorianCalendar cal1 = new GregorianCalendar(2011,2,9);
GregorianCalendar cal2 = new GregorianCalendar(2011,2,12);
long ms1 = cal1.getTime().getTime();
long ms2 = cal2.getTime().getTime();
long difMs = ms2-ms1;
long msPerDay = 1000*60*60*24;
System.out.println(difMs);
System.out.println(msPerDay);
double days = difMs/msPerDay;
System.out.println(days);
GregorianCalendar cal11 = new GregorianCalendar(2011,2,9);
GregorianCalendar cal22 = new GregorianCalendar(2011,2,19);
long ms11 = cal11.getTime().getTime();
long ms22 = cal22.getTime().getTime();
long difMs1 = ms22-ms11;
long msPerDay1 = 1000*60*60*24;
System.out.println(difMs1);
System.out.println(msPerDay1);
double days2 = difMs1/msPerDay1;
System.out.println(days2);
}
}
Cette sorties 3.0 et 9.0 (je m'attends à 10 !!). Cela fait une division entière, donc 9.0 est en réalité 9.95. Cependant, ma question est ...Java Jours de calendrier entre deux dates de calendrier Inconsistance
- La différence entre le 9 février et le 19 février est de 860400000 millisecondes, soit 239 heures.
- La différence entre le 9 février et le 12 février est de 259200000 millisecondes, soit 72 heures.
La première différence ne devrait-elle pas être de 240 heures?
Définissez les heures, minutes, secondes et millisecondes sur vos objets de calendrier (tous les 0), puis réévaluez la résiliation. –
Je reçois 3.0 et 10.0 en cours d'exécution de votre code en utilisant Java 7u2 – s106mo