Die Berechnung der Anzahl der Jahre zwischen zwei Date-oder Calendar-Objekte, wenn man bedenkt Schaltjahre
So, in ein Java-Projekt an dem ich arbeite sind wir verpflichtet, zu verwenden nur Datum und Kalender-Objekte zur Darstellung der Termine. Eine Methode, die ich Schreibe, setzt Voraus, dass ein Datum sein, zumindest bestimmte Anzahl von Jahren in der Vergangenheit, so muss ich in der Lage sein, genau zu berechnen die Anzahl der Jahre zwischen der Gegenwart und dem angegebenen Datum oder Kalender. Ich habe es geschafft, genau zu berechnen die Anzahl der Tage zwischen der Verwendung dieser Implementierung:
public static long daysSince(Date pastDate) {
long millisecondsSince = new Date().getTime() - pastDate.getTime();
return TimeUnit.DAYS.convert(millisecondsSince, TimeUnit.MILLISECONDS);
}
Aber jetzt bin ich kämpfen, um einen Weg finden, genau zu berechnen die Anzahl der Jahre, die zwischen diesen Datumsangaben unter Berücksichtigung von Schaltjahren etc. Offensichtlich dividieren des Ergebnisses der oben genannten Methode durch 365 oder 365.25 nicht ganz funktioniert. Ich bin mir bewusst, joda time package und java.Zeit allerdings, die wir explizit arbeiten zu müssen mit Datum und Kalender-Objekte. Hat jemand eine Idee, wie dies getan werden kann, vorzugsweise so schnell und elegant wie möglich? Danke
EDIT: zu finden Schien funktionierende Lösung, siehe unten
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich endlich in der Lage zu implementieren, die die gewünschten Funktionen mithilfe des folgenden Codes (unter Verwendung von Ideen von Haseeb Anser link):
Erste tests scheinen zu sein, immer korrekte Ausgabe, aber ich habe noch mehr zu testen ausgiebig.
Überprüfen Sie in diesem einfachen Beispiel könnte es Ihnen helfen: