Pessoal estou fazendo alguns testes com Date e Calendar, e me deparei com um probleminha
preciso por exemplo checar se o usuário tem mais de 18 anos, no caso ele já entrou a data, meu problema é só como fazer esse check (Utilizando os dias também!) ! tipo, se o cara nasceu em 1994 passa, mas se em 1999 não.
Outra coisa, é como comparar as datas, preciso passar um método apenas se a data de registro da operação, for não menos que 24hrs antes da data solicitada (como reservas em hotel)
Cara, se você está querendo evoluir no que diz respeito a cálculos com data, recomendo nem perder tempo com Date/Calendar e utilizar a biblioteca JodaTime, pelo que sei no Java 8 (ou 9, não tenho certeza) ela vai ser default.
Da pra fazer com Calendar? Sim, mas você vai ter problemas com cálculos de dias e o trabalho vai ser mais braçal e menos OO.
drsmachado
Tanto Date quanto Calendar possuem métodos que convertem a data especificada em um número que pode ser armazenado em um long.
Isso nos possibilita o seguinte.
publicbooleanmaisQue18(DatedtNasc){
DatedtAtual=newDate();longlDtAtual=dtAtual.getTime();longlDtNasc=dtNasc.getTime();longlIdade=(lDtAtual-lDtNasc);longsegundos=lIdade/1000;// o método getTime retorna o total de milissegundos de uma datalongminutos=segundos/60;longhoras=minutos/60;longdias=horas/24;longanos=dias/365;returnanos>=18?true:false;
}
Assim você já descobre a diferença entre datas.
Entre dias, basta fazer o mesmo cálculo.
Ah, claro que existem formas mais adequadas, como o JodaTime.
C
Claudio_davi
Hm, obrigado, darei uma pesquisada em JodaTime, mas por enquanto creio que os métodos com long possam me ajudar.
assim que testar o novo algoritmo eu retorno aqui. Até breve.
C
Claudio_davi
tudo certo (: Obrigado.
agora estudarei esse JodaTime.
Tks.