# Anzahl Monate zwischen zwei Datumsobjekten



## DataFox (22. April 2008)

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


----------



## zeja (22. April 2008)

Das mit dem GregorianCalendar geht aber ja auch ziemlich fix und ist schnell programmiert. Ansonsten Kannst du dir die Joda time API anschauen: http://joda-time.sourceforge.net


----------



## Flo<H> (23. April 2008)

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


----------



## Oliver Gierke (23. April 2008)

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


----------

