seg = 1000 * 1
minuto = seg * 60
hora = minuto * 60
Dia = hora * 24
Ou seja, você pode ir convertendo para segundos, depois minutos e, por último, por horas.
J
juniorsml
Pega em milesegundos as duas datas, joga cada uma em um long depois vc faz : maior - menor, ( resultado / 1000 / 60 /24).
Cara eu não testei, mas pelo q me lembro assim da certo, faz o teste ai…e posta se deu certo.
Rodrigo_Sasaki
Se quiser facilidade pode usar o JodaTime também, caso seja útil pra você e isso não seja um exercício.
ele tem uma classe Hours que trata isso muito facilmente. Ex:
DateTime hoje = new DateTime();
DateTime amanha = new DateTime().plusDays(1);
int horas = Hours.hoursBetween(hoje, amanha).getHours();
drsmachado
packagetempo;importjava.util.Calendar;importjava.util.GregorianCalendar;publicclassCalculaTempo{/** * @param args */publicstaticvoidmain(String[]args){CalendarprimeiraData=newGregorianCalendar(2012,05,03);CalendarsegundaData=newGregorianCalendar(2012,05,04);LongmsPrimeiraData=primeiraData.getTimeInMillis();LongmsSegundaData=segundaData.getTimeInMillis();Longdiferenca=msSegundaData-msPrimeiraData;//Mostra diferença em ms:System.out.println("Diferença em ms: "+diferenca);//Mostra diferença em s:System.out.println("Diferença em s: "+diferenca/1000);//Mostra diferença em m:System.out.println("Diferença em m: "+diferenca/1000/60);//Mostra diferença em h:System.out.println("Diferença em h: "+diferenca/1000/60/60);//Mostra diferença em dias:System.out.println("Diferença em dias: "+diferenca/1000/60/60/24);}}
Bem tosco, mas funciona.
Rodrigo_Sasaki
juniorsml:
Pega em milesegundos as duas datas, joga cada uma em um long depois vc faz : maior - menor, ( resultado * 60 * 60 *24).
Cara eu não testei, mas pelo q me lembro assim da certo, faz o teste ai…e posta se deu certo.
Acho que é resultado / 1000 / 60 / 60 pra ele conseguir as horas. Se multiplicar vai dar um número muito maior hehehe
drsmachado
digaoneves:
juniorsml:
Pega em milesegundos as duas datas, joga cada uma em um long depois vc faz : maior - menor, ( resultado * 60 * 60 *24).
Cara eu não testei, mas pelo q me lembro assim da certo, faz o teste ai…e posta se deu certo.
Acho que é resultado / 1000 / 60 / 60 pra ele conseguir as horas. Se multiplicar vai dar um número muito maior hehehe
Ele inverteu a lógica.
Isto se usa para achar os ms de um dia…
J
juniorsml
digaoneves vc ta certo cara…me enganei legal…ja arrumei lá.