Preciso de um pequeno algoritmo que resolva o seguinte problema:
segue meu método
publicvoidcalenadrioa(StringhoraAtual){SimpleDateFormatsdfConvert=newSimpleDateFormat("HH:mm");Datehora=null;Datex=newDate();try{hora=sdfConvert.parse("10:55");}catch(ParseExceptionex){Logger.getLogger(CadastroConsulta.class.getName()).log(Level.SEVERE,null,ex);}GregorianCalendargc=newGregorianCalendar();gc.setTime(hora);SimpleDateFormatsdf=newSimpleDateFormat("HH:mm");System.out.println(sdf.format(gc.getTime()));gc.add(Calendar.MINUTE,10);StringminutosDepois=sdf.format(gc.getTime());System.out.println(minutosDepois);gc.add(Calendar.MINUTE,2*-10);StringminutosAntes=sdf.format(gc.getTime());System.out.println(minutosAntes);// Verificar se horaAtual está no periodo de minutosAntes ate minutosDepois}
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:
Tem certeza? As datas tem o método after (que significa depois) e before, que significa antes… então, qual é a dúvida?
sonictk
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!");}
malucocelo
Você está comparando o contrário do que está dizendo…
sonictk
Verdade arrumei … :oops:
:!: Help-Me
B
Bruno_Laturner
Uma opção é usar o Joda Time para realizar esse tipo de cálculo:
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 ?
extreme_z3r0
Pelo que entedi acho que da pra resolver assim:
Pegando o time das datas (getTime) e comparando se a sua data está entre eles?
pow galera Vlw ae, mas acho que consegui resolver meu problema!
ficou meio grande, mas axo que da pra usar
publicvoidcalenadrioa(longhoraAtual){SimpleDateFormatsdfConvert=newSimpleDateFormat("HH:mm");Datehora=null;try{hora=sdfConvert.parse("10:55");}catch(ParseExceptionex){Logger.getLogger(CadastroConsulta.class.getName()).log(Level.SEVERE,null,ex);}GregorianCalendargc=newGregorianCalendar();gc.setTime(hora);SimpleDateFormatsdf=newSimpleDateFormat("HH:mm");longtempAgora=gc.getTimeInMillis();// System.out.println(sdf.format(gc.getTime()));// System.out.println(tempAgora);gc.add(Calendar.MINUTE,10);StringminutosDepois=sdf.format(gc.getTime());longtempDepois=gc.getTimeInMillis();// System.out.println(minutosDepois);// System.out.println(tempDepois);gc.add(Calendar.MINUTE,2*-10);StringminutosAntes=sdf.format(gc.getTime());longtempAntes=gc.getTimeInMillis();// System.out.println(minutosAntes);// System.out.println(tempAntes);if((horaAtual>tempAntes)&&(horaAtual<tempDepois)){System.out.print("Não pode fazer tarefa!");}elseSystem.out.print("Pode fazer tarefa!");}
:idea:
Resolvi postar pois se mais alguem tiver uma duvida da pra ter uma ideia!
Abraços!