Как правильно рассчитать количество месяцев в периоде больше года при сравнении дат? (котлин, андроид)
Данный код определяет количество месяцев между датами, но если между датами разница больше одного года, то код не считает общее число месяцев, а выводит только остаток месяцев от года, то есть не 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;