import java.util.*;
import java.text.*;
public class TesteData{
public void retornaDiferencaDeMeses(String dtInicio,String dtFim){
try{
SimpleDateFormat df = new SimpleDateFormat ("dd/MM/yyyy");
df.setLenient(false);
java.util.Date d1 = df.parse(dtInicio);
java.util.Date d2 = df.parse(dtFim);
System.out.println("Diferenca entre meses: "+ calcularDiferencaEntreMeses(d1,d2));
}catch(java.text.ParseException pe){
pe.printStackTrace();
}
}
public static void main(String[] args) {
TesteData diferencaMes = new TesteData();
diferencaMes.retornaDiferencaDeMeses("10/03/2000","11/04/2007");
}
private long calcularDiferencaEntreMeses(java.util.Date menor, java.util.Date maior){
return maior.getMonth() - menor.getMonth() + ((maior.getYear()-menor.getYear()) * 12);
}
}
Usando joda time ( http://joda-time.sourceforge.net/ ) para o mesmo :
DateTime inicio = new DateTime(2000, 3, 10, 0, 0, 0, 0);
DateTime fim = new DateTime(2006, 4, 11, 0, 0, 0, 0);
Months months = Months.monthsBetween(inicio, fim);