Dificuldade em calcular tempo (horas e data)

13 respostas
M

ola pessoal!!

estou com dificuldade em calcular o tempo gasto relacionando duas horas diferentes. Exemplo 15:45 - 17:55 o resultado que eu queria seria 2:10.
eu achei na net bastante mas quando se trata da data de inicio e de termino serem diferentes da problema. tipo 06/10/2009 as 15:45 - 07/10/2009 de 17:55 eu queria o resultado de 26:10.

preciso muito disso!!! GRATO.

13 Respostas

S

A idéia é o seguinte:

A diferença entre as datas é de 1 dia(24 horas).
A diferença entre as horas é de 2h10min.

24h + 2h10min = 26h10min

Acho que esse seria mais ou menos o raciocinio.
Me corrijam se estiver errado.

[]'s

I

Cara a tempos a atrás eu tive o mesmo prob…minha solução foi transformar tudo em segundos e eftuar a subtração …
=)

R

O método getTime() da classe Date retorna a data em milissegundos. Assim, você pode fazer a diferença entre as duas datas em milissegundos e depois tratar a diferença em horas e minutos, considerando que 1 segundo é equivalente a 1000 milissegundos, que 1 minuto é equivalente a 60 segundos e que 1 hora é equivalente a 60 minutos. Exemplo:

Date dataInicial = new Date(2009, 10, 06, 15, 45);
Date dataFinal = new Date(2009, 10, 07, 17, 55);

long diferenca = dataFinal.getTime() - dataInicial.getTime();

System.out.println("Horas: " + diferenca / (1000 * 60 * 60));
System.out.println("Minutos: " + diferenca % (1000 * 60 * 60) / (1000 * 60));
M

certo mas como eu posso fazer para subtrair uma data da outra tipo 1/10/2009 - 29/09/2009 e achar que neste periodo tem 2 dias

ou usando o Date tem como??

R

pra calculos assim utilize a lib joda-time

abrasssss

M

ola rafaelsantini .

eu entendi oq vc me passou vou testa assim q chegar do serviço e avisso c der certo…

mas valew a todos que me deram uma força.

A

Nã entendo pq em java tudo tem que ser complicado mesmo, data então é o inferno! :evil: :evil: :evil:

R

insisto… se usar joda-time fica facil

M

Blz renanreismartins.

vou dar uma olhada para ver c eu acho um codigo sobre joda-time. ou c vc tiver um codigo e mandar seria melhor ainda.

valew

H

alindre:
Nã entendo pq em java tudo tem que ser complicado mesmo, data então é o inferno! :evil: :evil: :evil:

Ja tentou usar Calendar, SimpleDateFormat…?

Não é Java que complica as Datas, a data em si é complexa. E para esta complexidade existem varias Classes Utilitarias que deverias conhecer!

N

http://joda-time.sourceforge.net/api-release/index.html

:wink:

M

pessoal agradeco pela ajuda que deu certo!!!

Valew mesmo…

F

alindre:
Nã entendo pq em java tudo tem que ser complicado mesmo, data então é o inferno! :evil: :evil: :evil:

É que tú não viu como se trata data em C/C++… é a coisa mais tosca do mundo! Em Java é super fácil… rs…

O pior é que em C/C++ cada um inventa de fazer um tipo de data… e o mais incrível é que sempre tem vários bugs… pois não existe algo padrão no C/C++ cada um inventa a sua ou pega N bibliotecas toscas de pessoas que jogam o código na internet e depois desaparecem.

Quem mexe com sistemas de telecom sabe que data é um inferno, já imaginou alguém começar a falar no telefone as 23:59 do dia 1 e depois sua ligação terminar no dia 23:10 do dia 1? Sim, já vi isso acontecer e já ví até overflow na conta de clientes. Fora as N formas de representar datas, tais como na Alemanha, Brasil, EUA, França e etc e ter que fazer o parse na mão.

Criado 8 de outubro de 2009
Ultima resposta 14 de out. de 2009
Respostas 13
Participantes 9