Depois de apanhar um bocado com estouro de inteiros no Calendar,
comecei a tentar usar o joda-time.
Infelizmente também estou enfrentando problemas com a nova API.
Tentei subtrair um dia da data final de um Period e obtive um resultado estranho.
Alguém sabe o que pode estar causando esta divergência de valores ?
public static void main(String[] args) throws Exception {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
DateTime dt1 = new DateTime(dateFormat.parse("09/09/1982"));
DateTime dt2 = new DateTime(dateFormat.parse("23/01/2012"));
LocalDate ld1 = dt1.toLocalDate();
LocalDate ld2 = dt2.toLocalDate();
Period p1 = new Period(ld1, ld2);
PeriodFormatter pf = new PeriodFormatterBuilder()
.appendYears().appendSuffix(" ano, ", " anos, ").printZeroIfSupported()
.appendMonths().appendSuffix(" mês, ", " meses, ").printZeroIfSupported()
.appendDays().appendSuffix(" dia", " dias").printZeroIfSupported()
.toFormatter();
//subtraindo um dia da segunda data
ld2 = ld2.plusDays(-1);
Period p2 = new Period(ld1, ld2);
System.out.println("P1 - " + pf.print(p1));
System.out.println("P2 - " + pf.print(p2));
}
Output:
P1 - 29 anos, 4 meses, 0 dias
P2 - 29 anos, 4 meses, 6 dias