Как в Android можно получить и отобразить количество дней, месяцев и лет с даты?
Например, допустим, предыдущая дата:
02/02/2017
и сегодняшняя дата:
04/30/2018
Я бы хотел сказать что-то вроде:
1 year, 2 months, 28 days
Я думаю, мне нужно получить общее количество дней примерно так:
long msDiff = Calendar.getInstance().getTimeInMillis() - oldCalendarDate.getTimeInMillis();
long daysDiff = TimeUnit.MILLISECONDS.toDays(msDiff);
но как мне преобразовать количество дней, чтобы их можно было прочитать, в годы, месяцы и дни? Помните, что не во всех месяцах есть 31 день.
Потому что таким образом я получаю только
452 days
Как результат. Но я хочу, чтобы это было больше как 1 год, 2 месяца, 28 дней.
Есть ли лучшее решение?
Также я хочу получить старую дату, например, в переменную:
val oldCalendarDate = GregorianCalendar(2017, 3, 30).time
но с вышеприведенным кодом это вообще не работает. Да, я знаю, что переменная в kotlin, потому что я работаю в kotlin, так что извините за синтаксис. Я думаю, что больше проблема в том, как отформатированы целые числа. Я уже преобразовал другой код Java в kotlin, но я опубликовал его как java для этого поста, так как все больше людей знакомы с java.