Preciso de um pequeno algoritmo que resolva o seguinte problema: segue meu método
[code] public void calenadrioa(String horaAtual) {
SimpleDateFormat sdfConvert = new SimpleDateFormat(“HH:mm”);
Date hora = null;
Date x = new Date();
try {
hora = sdfConvert.parse(“10:55”);
} catch (ParseException ex) {
Logger.getLogger(CadastroConsulta.class.getName()).log(Level.SEVERE, null, ex);
}
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(hora);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
System.out.println(sdf.format(gc.getTime()));
gc.add(Calendar.MINUTE, 10);
String minutosDepois = sdf.format(gc.getTime());
System.out.println(minutosDepois);
gc.add(Calendar.MINUTE, 2* -10);
String minutosAntes = sdf.format(gc.getTime());
System.out.println(minutosAntes);
// Verificar se horaAtual está no periodo de minutosAntes ate minutosDepois
} [/code]
E na verdade é disso que eu preciso Verificar se horaAtual está no intervalo de minutosAntes ate minutosDepois :!:
Tentei olhar documentações do JAVA e não consegui… alguem alguma dica ae ?
:roll:
Seguinte:
Passei por parâmetro uma variável horaAtual, preciso checar se essa hora esta dentro de 16:30 … a … 16:50
Se a horaAtual, estiver dentre 16:30 … a … 16:50 não poderá cumprir a tarefa!
To tentando algo assim, mas não to conseguindo andar mais pra frente!
// Continuando o algoritmo de cima!
if ((gc.after(minutosAntes)) && (gc.before(minutosDepois))){
System.out.print(" Não pode fazer tarefa!");
}
Uma opção é usar o Joda Time para realizar esse tipo de cálculo:
DateTime minutosAntes = new DateTime().minusMinutes(10);
DateTime minutosDepois = new DateTime().plusMinutes(10);
Interval intervalo = new Interval(minutosAntes, minutosDepois);
DateTime hora = new DateTime().withTime(10, 55, 0, 0);
if (intervalo.contains(hora))
// hora está dentro do intervalo.
Sei que o Joda Time parece ser a melhor opção mesmo (visto as mensagens aqui no fórum).
Mas seria possível essa comparação com o Calendar embutido do JAVA mesmo ?