Comparar Horas

ola pessoal !!

Estou com o seguinte problema…

Tenho duas Horas que variam de 0-23

StartTime= 09:15
EndTime=11:15

O que eu tenho que fazer é basicamente verificar se a diferença entre elas é maior do que 1 hora.

Eu criei um fluxo, convertendo Date para int, e verificando o se o range dos dois é > 1, porem temos o problema de “StartTime=23 e EndTime=00 23-00= nao funfa”

segue o que tenho até agora que funciona quase que erfeitamente a nao ser por esse problema.


Date startTime;
Date endTime;
	
if (getHour(jobGroup.getStartTime()) - getHour(jobGroup.getEndTime()) > 1 || getHour(jobGroup.getEndTime()) -getHour(jobGroup.getStartTime())>1 ){
\o/
}

passa pra long q fica mais facil de comparar datas:

private long comparaHora (Date inicio , Date fim){
    return inicio.getTime() - fim.getTime(); // aqui retorna a diferença de tempo entre elas, em milisegundos
}

agora é só passar de milisegundaos pra hora e ver se é maior q 1

Eu fiz desta maneira , porem existe um problema.

caso StartTime =23 e EndTime=00, ele nao consegue entender…

if ((jobGroup.getStartTime().getTime()- jobGroup.getEndTime().getTime() > 3600000 )|| jobGroup.getEndTime().getTime()- jobGroup.getStartTime().getTime() > 3600000) {

System.out.println("ERRADOOOOOOOOOOOOOOOOOOOOOOOOOOOO");

}
else
{
System.out.println("AEWWWWWWWWWWWWWWW");

}

Usa o JodaTime!!

fiz rapidinho pq tô no trabalho, mas acho que dá p ter uma idéia:

		LocalTime startTime = new LocalTime(9, 15);
		LocalTime endTime = new LocalTime(11, 15);

		if (startTime.isAfter(endTime.plusHours(1).plusMinutes(1))) {
			System.out.println("tempo inicial excede tempo final em mais de 1 hr.");
		} else if (startTime.isBefore(endTime.minusHours(1).minusMinutes(1))) {
			System.out.println("tempo antecede tempo final em mais de 1 hr.");
		} else if (startTime.equals(endTime)) {
			System.out.println("são iguais!");
		} else {
			System.out.println("tempo inicial e tempo final têm menos de 1 hr de diferença");
		}

espero ter ajudado!!

Opa, muito obrigado bobmatta, porem gostaria de manter o que estou usando com Calendar ou Date, alguem saberia me dizer porque esse exemplo que dei utilizando GetTime() nao funciona?