Ok, fatto di seguito la versione definitiva del mio problema.
codice:/** * Calcola la differenza in mesi fra due date passate * @param dataDa * @param dataA * @return */ public static int getNumeroMesiDifferenzaDate(Date dataDa, Date dataA){ Calendar calendarDa = Calendar.getInstance(); Calendar calendarA = Calendar.getInstance(); calendarDa.setTime(dataDa); calendarA.setTime(dataA); int annoDa = calendarDa.get(Calendar.YEAR); int meseDa = calendarDa.get(Calendar.MONTH); int annoA = calendarA.get(Calendar.YEAR); int meseA = calendarA.get(Calendar.MONTH); int diffAnni = annoA - annoDa; int diffMesi = 0; if (meseDa <= meseA) { diffMesi = meseA - meseDa; } else{ // se il mese di arrivo è precedente a quello di inizio allora calcolo la differenza in mesi come il mese di arrivo + 12 (mesi in un'anno) - mese di inizio int tempDiff = 12 - meseDa; diffMesi = tempDiff + meseA; if (diffAnni != 0) { // se gli anni sono diversi devo sottrarre 1 alla loro differenza perchè un anno lo uso per il calcolo dei mesi di differenza diffAnni -= 1; } } int numeroMesiFinale = 0; if (diffMesi != 0) { numeroMesiFinale = diffAnni * 12 + diffMesi; } else{ if (diffAnni != 0) { numeroMesiFinale = diffAnni * 12; } } return numeroMesiFinale; }![]()

Rispondi quotando