Ich müde mit java.time.Period
, und die Ergebnisse waren anders als meine manuellen Berechnungen von drei Tagen. Das komische Ding hier ist, wenn ich die Periode in zwei Perioden teile, stimmen die Ergebnisse mit meinen manuellen Berechnungen überein.java.time.Period, die Teilung der Zeitraum gibt falsche Ergebnisse
die zweite Methode ist genau wie ich die Periode manuell berechnen.
Gibt es etwas, was ich vermisst habe? Gibt es eine Standardmethode oder einen Kalenderalgorithmus? und was ist der von java.time.Period
verwendete Algorithmus?
import java.time.LocalDate;
import java.time.Period;
import java.time.temporal.ChronoUnit;
public class test2 {
public static void main(String[] args) {
LocalDate d1 = LocalDate.of(2014, 2, 14);
LocalDate d2 = LocalDate.of(2017, 8, 1);
Period p = Period.between(d1, d2);
//using period between the two dates directly
System.out.println("period between " + d1.toString() + " and " + d2.toString() + " is " + p.getYears()
+ " years " + p.getMonths() + " months " + p.getDays() + " Days");
//dividing the period into two parts
p = Period.between(LocalDate.of(2014, 3, 1), d2);
System.out
.println("period between " + d1.toString() + " and " + d2.toString() + " is " + p.getYears() + " years "
+ p.getMonths() + " months " + d1.until(LocalDate.of(2014, 3, 1), ChronoUnit.DAYS) + " Days");
}
}
Was genau möchten Sie tun? Welche Ergebnisse bekommst du? Welche Ergebnisse erwarten Sie? – Dukeling