Etwas scheint nicht richtig und ich weiß nur nicht, wie ich es beheben kann.Anderes Zeitintervall util.date und DAYS.between (Localtime)
Ich möchte den Unterschied in Tagen zwischen 2 Daten wissen. Nun implementiert ich eine Funktion, die die Unterschiede von Millisekunden bis zu Tagen berechnet für util.date Objekte
public long calculateNumberOfDays(Date from, Date to) {
return (to.getTime() - from.getTime())/(1000*60*60*24);
}
Mein jUnit Test mir gesagt, ein Fehler mit dieser Funktion war, so dass ich schrieb es LOCALDATE und die ChronoUnit verwenden. DAYS.between Funktion. Es hat wie ein Zauber funktioniert.
Wollen wissen, was die Unterschiede zwischen diesen beiden Funktionen waren, schrieb ich diesen kleinen Test:
for(int numberDays = 1; numberDays<10; numberDays++){
LocalDate fromLD = LocalDate.now();
LocalDate toLD = fromLD.plusDays(numberDays);
Date fromD = Date.valueOf(fromLD);
Date toD = Date.valueOf(toLD);
long diffMS = toD.getTime() - fromD.getTime();
double diffDays = diffMS/(1000*60*60*24);
long numDaysDate = DAYS.between(fromLD, toLD);
System.out.println(numberDays+" = "+diffDays+"/"+numDaysDate);
}
Es ist in der folgenden Ausgabe ergab:
1 = 1.0/1
2 = 2.0/2
3 = 3.0/3
4 = 4.0/4
5 = 4.0/5
6 = 5.0/6
7 = 6.0/7
8 = 7.0/8
9 = 8.0/9
Kann mir jemand erklären, wie Das ist möglich? (1-4 funktioniert, 5-9 util.date hat einen Tag verloren)
Sieht aus wie die Sommerzeit zu beginnen .... –
ich nicht wissen wir sparen einen ganzen Tag dieses Jahr: P – Nexxurs
Ich machte es eine Antwort, aber ganzzahlige (oder lange) Divisionen runden –