Sto scrivendo un programma che dovrebbe calcolare solo i mesi tra 2 date date e restituire il valore al programma. Per esempio, se devo calcolare il numero di mesi tra il 1 aprile e il 30 giugno (che è un quarto, 3 mesi), e ho utilizzare il seguente codice:Come calcolare la differenza SOLO in mesi utilizzando l'API Joda di Java
DateTime start = new DateTime().withDate(2011, 4, 1);
DateTime end = new DateTime().withDate(2011, 6, 30);
Months mt = Months.monthsBetween(start, end);
int monthDiff = mt.getMonths();
Usando questo, ancora sto ottenendo " 2 "come il numero di mesi, mentre in realtà è" 3 "mesi. Questo è un esempio di ciò che voglio. Sto solo calcolando il numero di mesi (cioè dal 1 ° del mese di inizio t l'ultima data del mese di fine) e non ho bisogno di ulteriori analisi come giorni, settimane, ore, ecc. Come posso raggiungere questo obiettivo?
Qualsiasi aiuto sarebbe apprezzato.
Non vedo l'ora di leggere la risposta da Jon Skeet, lo StackOverflow e data Esperto API;) – DaveFar
Credo che la risposta temporale Yoda sia corretta. Dal 1 ° aprile al 30 giugno, escluso il 30 giugno, dureranno quasi tre mesi. Penso che entrambe le date abbiano la stessa ora (00:00) e quindi il 30 giugno non è realmente incluso nell'intervallo. – extraneon
@extraneon - Proprio così. Il periodo visualizzato è di 2 mesi, 4 settimane e 1 giorno. –