Calcular Diferença de Horas com duas Datas

Boa tarde pessoal.
Estou com uma dificuldade que para alguns deve ate ser simples, mas estou sem nem um começo de pensamento sobre como fazer isso.
Eu tenho no postgres dois campos (Data do tipo Date e Hora do tipo Time), tenho um programa rodando numa fabrica onde é registrado quando se inicia um determinado processo e quando se finaliza o mesmo processo (1 - inicio / 2 - fim) agora eu preciso pegar estas informações e calcular a diferença (em minutos, horas ou dias) de quando ele iniciou o processo para quando ele terminou este processo. Para realizar isso utilizando o mesmo dia eu não tive problemas, mas quando, por exemplo, inicia no dia 20 e termina no dia 25, calcular o horário exato de trabalho (tirando horas que o funcionário não esta na empresa, horário de almoço e finais de semana).

Possivelmente duplicado.

Eu entendo o que você utilizou ai Junior, só não consigo encaixar este exemplo no que eu preciso, porque eu preciso que o programa tire o tempo extra, como horas que a empresa esta fechada, finais de semana, etc. Se eu fizer isso eu consigo o período entre a primeira hora e a segunda hora, mas não significa que eu consigo retirar o tempo extra. Por exemplo, se eu tenho hr1 (10:02:14.144) do dia 21, e na hr2 (09:03:25.487) do dia 22, já não vai calcular direito. saco?

De uma olhada na biblioteca JodaTime … principalmente na classe Period … :wink:
Abs

String primeiraHora = "11/02/2016 10:34:25.08"; String segundaHora = "13/02/2016 11:33:25.08"; DateTimeFormatter dformat = DateTimeFormat.forPattern("dd/MM/yyy HH:mm:ss.SSS"); DateTime primeiraHoraFormatada = DateTime.parse(primeiraHora, dformat); DateTime segundaHoraFormatada = DateTime.parse(segundaHora, dformat); int hours = Hours.hoursBetween(primeiraHoraFormatada, segundaHoraFormatada).getHours(); Nesse exemplo 48 horas, já que a segunda hora não chegou aos 34 min. Espero que tenha ajudado :) e sim é o joda time que nosso amigo @guivirtuoso comentou e @marcos-hrm dei praticamente o mesmo exemplo que o do outro post, era só você modificar como está recebendo a data adicionando o dia/mês/ano
1 curtida