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
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");
}
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?