it-swarm.com.de

Ermitteln Sie die Differenz zwischen zwei Daten in Monaten mit Java

Ich muss die Differenz zwischen zwei Daten mithilfe von Java ermitteln. Ich brauche mein Ergebnis in Monaten.

Beispiel:

Startdatum = 2013-04-03 Enddatum = 2013-05-03 Ergebnis sollte 1 sein

wenn das Intervall ist

Startdatum = 2013-04-03 Enddatum = 2014-04-03 Ergebnis sollte 12 sein

Mit dem folgenden Code kann ich die Ergebnisse in Tagen erhalten. Wie komme ich in Monaten?

Date startDate = new Date(2013,2,2);
Date endDate = new Date(2013,3,2);
int difInDays = (int) ((endDate.getTime() - startDate.getTime())/(1000*60*60*24));
30
ashu

Wenn Sie JodaTime nicht verwenden können, können Sie Folgendes tun:

Calendar startCalendar = new GregorianCalendar();
startCalendar.setTime(startDate);
Calendar endCalendar = new GregorianCalendar();
endCalendar.setTime(endDate);

int diffYear = endCalendar.get(Calendar.YEAR) - startCalendar.get(Calendar.YEAR);
int diffMonth = diffYear * 12 + endCalendar.get(Calendar.MONTH) - startCalendar.get(Calendar.MONTH);

Beachten Sie, dass Sie bei Datumsangaben vom 31.01.2013 und 01.02.2013 auf diese Weise einen Abstand von 1 Monat erhalten, der möglicherweise Ihren Wünschen entspricht.

101
Etienne Miret

Sie können die Joda-Zeitbibliothek für Java verwenden. Es wäre viel einfacher, Zeitunterschiede zwischen Daten damit zu berechnen.

Beispiel-Snippet für Zeitunterschiede:

Days d = Days.daysBetween(startDate, endDate);
int days = d.getDays();
4
MadTech