A Period
состоит из нескольких лет, месяцев и дней.В вашем случае Period.between(birthA, eventA)
- это 26 лет, 7 месяцев и 12 дней.
Если вы добавите это к birthA
, вы получите:
- 1965 + 26 лет ->1991
- сентябрь 1991 + 7 месяцев -> апрель 1991
- 27 апреля 1991 + 12 дней -> 9 мая 1992
Что работает, как ожидалось.
Если вы примените тот же расчет, начиная с 9 мая 1992 года, вы получите 21 декабря 2018.
Если вы хотите добавить определенное количество дней, вы не можете просто добавитьпериод (так как годы и месяцы не всегда имеют одинаковую длину).Один из вариантов - использовать ChonoUnit.DAYS.between
вместо:
LocalDate halfA = eventA.plusDays(ChronoUnit.DAYS.between(birthA, eventA));
Возвращает 2018-12-20
, что, я думаю, соответствует вашим ожиданиям.