SimpleDateFormatformatador=newSimpleDateFormat("HH:mm");try{DatebeforeDate=formatador.parse(deHoras);DateafterDate=formatador.parse(ateHoras);DatedeDateVer=formatador.parse(deHorasVer);DateateDateVer=formatador.parse(ateHorasVer);if((beforeDate.after(deDateVer)&&beforeDate.before(ateDateVer))||(afterDate.after(deDateVer)&&afterDate.before(ateDateVer))){System.out.println("Dentro do intervalo!");}else{System.out.println("Fora do intervalo!");}}catch(ParseExceptione){// TODO Auto-generated catch blocke.printStackTrace();}
Parece que essa questão é meio difícil mesmo as respostas que eu achei não funcionaram muito bem!
Não queria mas alguém sabe como resolver com sql?
bobmatta
tenta o JodaTime!
publicstaticvoidmain(String[]args){DateTimeFormatterformatter=DateTimeFormat.forPattern("HH:mm");DateTimedeHoras=formatter.parseDateTime("09:15");DateTimeateHoras=formatter.parseDateTime("09:45");DateTimedeHorasVer=formatter.parseDateTime("08:15");DateTimeateHorasVer=formatter.parseDateTime("10:30");booleaninicio=deHoras.isAfter(deHorasVer);booleanfim=ateHoras.isBefore(ateHorasVer);if(inicio&&fim){System.out.println("o primeiro intervalo está contido no segundo intervalo!");}else{System.out.println("o primeiro intervalo não está contido no segundo intervalo");}}
Fiz rapidinho porque estou no trabalho, mas acho que a idéia é por ai!
Abraço, espero ter ajudado!
worlock257
Galera muito obrigado msm!
Vlw bobmatta por ter me falado da Joda-Time é perfeito!
Vasculhando a documentação, achei o método overlap que obtém a sobreposição de uma hora e outra. Depois fiz umas alterações e ficou perfeito!
Segue ae o código tenso! kkkkkkk!
publicstaticvoidmain(String[]args){StringdeHoras="13:56";StringateHoras="14:55";StringdeHorasVer="12:15";StringateHorasVer="13:55";DateTimeFormatterformatador=DateTimeFormat.forPattern("HH:mm");try{DateTimebeforeDate=formatador.parseDateTime(deHoras);DateTimeafterDate=formatador.parseDateTime(ateHoras);DateTimedeDateVer=formatador.parseDateTime(deHorasVer);DateTimeateDateVer=formatador.parseDateTime(ateHorasVer);Intervalinterval=newInterval(beforeDate,afterDate);Intervalinterval2=newInterval(deDateVer,ateDateVer);ReadableIntervalreadableInterval=interval2;System.out.println(interval.overlap(readableInterval));//Se retornar null está fora do intervalo senão está no intervalo// o método overlaps() é melhor ainda que retorna true ou false}catch(Exceptione){// TODO Auto-generated catch blocke.printStackTrace();}}