Boa tarde Pessoal,
Estou com um pequeno problema no meu código que calcula diferença entre datas…
Por exemplo, passando Dia, Mês e Ano e a Data Atual devolver a quantidade de meses de diferença entre as datas…
Essa é minha classe:
[code]public class CalculaMeses {
private int total;
public int calcula(String anoFerias, String mesFerias, String diaFerias)
{
//passando uma data ele calcula os meses da data atual até o ano desejado
int ano = Integer.valueOf(anoFerias);
int mes = Integer.valueOf(mesFerias);
int dia = Integer.valueOf(diaFerias);
Calendar Atual = Calendar.getInstance();
Calendar Ferias = Calendar.getInstance();
Ferias.set(Calendar.YEAR, ano);
Ferias.set(Calendar.MONTH, mes);
Ferias.set(Calendar.DAY_OF_MONTH, dia);
int difDia = Ferias.get(Calendar.DAY_OF_MONTH) - Atual.get(Calendar.DAY_OF_MONTH);
int difMes = Ferias.get(Calendar.MONTH) - Atual.get(Calendar.MONTH);
int difAno = ((Ferias.get(Calendar.YEAR) - Atual.get(Calendar.YEAR))*12);
int total = difAno+difMes;
System.out.println("Diferenca meses: "+total);
System.out.println("Diferença Mês: "+difMes);
System.out.println("Diferença Ano: "+difAno);
System.out.println("Diferença Dia: "+difDia);
return total;
} [/code]
O problema é o seguinte (hoje data 31/10/2011) estou passando, dia 31, mês 12, ano 2011 o certo era ele calcular pra mim 2 meses, mas ele me mostra 3 meses.
Alguém sabe onde pode estar o problema?
Obrigada a todos.