Diferenças entre datas

2 respostas
karluqs

Galera,

Eu estava precisando encontrar um método que retornasse o número de dias entre duas datas, encontrei uma que faz exatamente o que quero, só que há um problema, para criar o objeto GregorianCalendar eu preciso passar todos os dados (dia, mes, ano, etc), e eu tenho que pegar esses dados de um objeto Date do ResultSet, o problema está em que para pegar os dados de dia, mes… e iniciar o GregorianCalendar eu tenho que usar métodos do objeto Date como getDay(), getYear() etc e estes métodos segundo a documentação do JDK estão deprecated, só que eu não encontrei nenhum outro meio de pegar a data do objeto ResultSet. Segue o código, gostaria de sugestões para evitar o deprecated.

DataIn = result.getDate(“DATA”);
DataInicial = new GregorianCalendar(DataIn.getYear(), DataIn.getMonth(), DataIn.getDay(), DataIn.getHours(), DataIn.getMinutes(), DataIn.getSeconds());

long diffMillis = DataAtual.getTimeInMillis() - DataAdmissao.getTimeInMillis();
double diffDays = diffMillis / (24.0 * 60.0 * 60.0 * 1000.0);

2 Respostas

Elvis.The.Pelvis

Cara, andei olhando as classes Date, DateFormat e GregorianCalendar e realmente não achei como fazer através das APIs.

Mas segundo a documentoção do java.sql.Date, o método toString retorna a data no format yyyy-mm-dd.

É meio feio, mas você pode pegar essa String e quebra-la e usa-la para passar os parâmetros pro GregorianCalendar.

Se alguém tiver uma maneira mais elegante por favor…

karluqs

É realmente Elvis, se por um lado eu posso usar um método deprecated e arriscar ter que mudar o código no futuro, por outro lado eu codificaria algo bem deselegante no modo usando toString() (obrigado pela ajuda).

Eu acabei desistindo de fazer no Java e coloquei o cálculo de dias na consulta SQL.

Eu fiz uma boa pesquisa e não encontrei outros modos de fazer isso, ainda vou continuar tentando, fica ainda a dúvida sobre um método melhor…

Criado 14 de março de 2003
Ultima resposta 16 de mar. de 2003
Respostas 2
Participantes 2