Итак, в проекте Java, над которым я работаю, мы должны использовать только Объекты даты и календаря для представления дат. Метод, который я пишу, требует, чтобы дата была, по крайней мере, определенным числом лет в прошлом, поэтому мне нужно иметь возможность точно рассчитать количество лет между настоящей и данной датой или календарем. Мне удалось точно рассчитать количество дней между использованием этой реализации:Расчет количества лет между двумя объектами Date или Calendar, учитывая високосные годы
public static long daysSince(Date pastDate) {
long millisecondsSince = new Date().getTime() - pastDate.getTime();
return TimeUnit.DAYS.convert(millisecondsSince, TimeUnit.MILLISECONDS);
}
Однако теперь я изо всех сил, чтобы найти способ, чтобы точно рассчитать количество лет между этими датами в то время, принимая во внимание високосные годы и т.д. Очевидно, деление результата вышеуказанного метода на 365 или 365,25 не совсем работает. Я знаю о пакете времени joda и java.time, но мы явно должны работать с объектами Date и Calendar. Кто-нибудь понял, как это можно сделать, желательно как можно быстрее и элегантнее? Спасибо
EDIT: Показалось найти функционирующий решение, смотрите ниже
+1 Я не знаю, проще ли это от того, что мы сравниваем, потому что у меня нет петель в мой код, который должен заставить мой код работать быстрее. Но рад, что вы внедрили решение – sebenalern