Anzahl Monate zwischen zwei Datumsobjekten

DataFox

Erfahrenes Mitglied
Hi Leute

ich habe hier ein kleines Prob.: Aus zwei Datumsangaben brauche ich die Anzahl der Monate, die dazwischen liegen. Beispiel:

Datum A = 8.10.2008
Datum B = 19.03.2009
Monate dazwischen: 6 Monate!
+ der ganze 10.08,
+ 11.08,
+ 12.08,
+ 01.09,
+ 02.09,
+ der ganze 03.09

Es soll immer ein voller Monat genommen werden. Sprich: Ein angebrochener Monat gilt als voller Monat.

Einfach nur die Microsecs subtrahieren und dann durch (1000 * 60 * 60 * 24 * 30) teilen wäre viel zu unpräzise.

Leider bietet Java dafür nichts gescheites (habe 1 Std gesucht).

Habt Ihr eine Idee wie man dies korrekt ermitteln könnte? Ich dachte schon an einen GreogorianCalendar, mit dem man in einer Schleife so lange einen Monat drauf packt, bis die Monats-Angaben und Jahres-Angaben identisch sind. Aber ob das so sinnvoll ist

Gruß
Laura
 
Hallo!
Ich würde das Ganze mit einem GregorianCalendar lösen:
Mit calendar.get(Calendar.YEAR) zuerst das Datum vergleichen und evtl. zu der Monatsdifferenz ein Vielfaches von zwölf dazurechnen. Anschließend mit calendar.get(Calendar.MONTH) die Monate vergleichen.
mfg flo
 
Ich würde nix mehr ohne JodaTime anfangen, was auch nur annähernd irgendwelche nichttrivialen Datumsoperationen (new Date()) benötigt. Die DateTime API ist irgendwie das schlimmste, was so im JDK rumlungert.

Mit JodaTime ist man dann auch recht nah am JSR-310, der hoffentlich in Java 7 einfließt.

Gruß
Ollie
 
Zurück