Pessoal,
Estou com uma dificuldade de calcular a diferença entre datas. Estou usando o código abaixo que funciona perfeitamente para datas do mesmo mês, mas quando quero a diferença entre datas de meses diferentes, a conta vem toda errada. Alguém tem uma idéia do que possa ser?
/* Faz o cálculo da diferença de dias entre duas datas.
* @param dataMenor é a data mais antiga
* @param dataMaior é a data mais atual
* @return o número de dias entre as datas
*/
public double contadorDiasD(Timestamp dataMenor, Timestamp dataMaior)
{
double maior = dataMaior.getTime();
double menor = dataMenor.getTime();
return (maior - menor) / (24*60*60*1000);
}
/* Faz o cálculo de horas a partir do valor passado.
* @param data é o valor da data
* @return as horas representadas pela parte decimal do valor
*/
public double getHorasD(double data)
{
double fracao = 0;
double horas = 0;
String dataS = new String(""+data);
int indice = dataS.indexOf(".");
String fracaoS = dataS.substring(indice+1,dataS.length());
fracao = Double.parseDouble("0."+fracaoS);
horas = fracao * 24;
return horas;
}
/* Faz o cálculo de minutos a partir do valor passado representado as horas de uma determinada data.
* @param horas representa a quantidade de horas
* @return os minutos representados pela parte decimal do valor
*/
public int getMinutos(double horas)
{
double fracao = 0;
int minutos = 0;
String horasS = new String(""+horas);
int indice = horasS.indexOf(".");
String fracaoS = horasS.substring(indice+1,horasS.length());
fracao = Double.parseDouble("0."+fracaoS);
minutos = (int) fracao * 60;
return minutos;
}