Stavo provando la nuova Date-Time API di Java 8. Ho scritto questo per vedere la differenza come Period tra due LocalDate:
codice:
import java.time.*;
public class LocalDateDiff {
public static void main(String[] args) {
printDiff(LocalDate.of(2012, 12, 1), LocalDate.of(2014, 2, 1));
printDiff(LocalDate.of(2012, 11, 30), LocalDate.of(2014, 2, 1));
}
private static void printDiff(LocalDate d1, LocalDate d2) {
Period p = Period.between(d1, d2);
System.out.format("[%s , %s) = %d year(s), %d month(s), %d day(s)%n",
d1, d2, p.getYears(), p.getMonths(), p.getDays());
}
}
A me stampa:
[2012-12-01 , 2014-02-01) = 1 year(s), 2 month(s), 0 day(s)
[2012-11-30 , 2014-02-01) = 1 year(s), 2 month(s), 2 day(s)
Se scalo indietro di 1 giorno solo d1, mi aspetterei che il Period aumenti di 1 giorno .... non di 2.
Mi sfugge qualcosa?
A voi sembra corretto? (LeleFT, Alex'87: sapete qualcosa più di me della Date-Time API?)