Как правильно рассчитать количество месяцев в периоде больше года при сравнении дат? (котлин, андроид)

Данный код определяет количество месяцев между датами, но если между датами разница больше одного года, то код не считает общее число месяцев, а выводит только остаток месяцев от года, то есть не 14 месяцев, а всё равно 2 месяца. Нужно чтобы выводилось полное количество месяцев

Period.between(data1, date2).months.absoluteValue

Ответы (1 шт):

Автор решения: Eugene Krivenja

Вы неверно понимаете поведение Period. Он вам говорит:

val p = Period.between(LocalDate.now(), LocalDate.now().plusMonths(14))
println(p) // P1Y2M

Один год и Два месяца. Вы же читаете только месяцы, игнорируете годы.

Но есть еще вот такой метод, думаю это как раз то, что вам надо.

println(p.toTotalMonths()) // 14

Который собственно все что делает:

return years * 12L + months;
→ Ссылка