importjava.util.*;importjava.text.*;classComparacaoDatas{/** * @param dt A data * @param dtInicio A data inicial * @param dtFim A data final * @return true se dtInicio <= dt <= dtFim */publicstaticbooleanentreDuasDatas(Datedt,DatedtInicio,DatedtFim){returndtInicio.compareTo(dt)<=0&&dt.compareTo(dtFim)<=0;}/** * Alternativa usando before e after, conforme sugerido pelo ddduran. Note que neste caso * o intervalo é um pouco diferente: * @param dt A data * @param dtInicio A data inicial * @param dtFim A data final * @return true se dtInicio < dt < dtFim */publicstaticbooleanentreDuasDatas(Datedt,DatedtInicio,DatedtFim){returndtInicio.before(dt)&&dtFim.after(dt);}publicstaticvoidmain(String[]args)throwsParseException{DateFormatdf=newSimpleDateFormat("dd/MM/yyyy");DatedtInicio=df.parse("01/10/2007");DatedtFim=df.parse("31/12/2007");Datedt;dt=df.parse("07/11/2007");System.out.println(df.format(dt)+" -> "+entreDuasDatas(dt,dtInicio,dtFim));System.out.println(df.format(dt)+" => "+entreDuasDatas2(dt,dtInicio,dtFim));dt=df.parse("07/09/2007");System.out.println(df.format(dt)+" -> "+entreDuasDatas(dt,dtInicio,dtFim));System.out.println(df.format(dt)+" => "+entreDuasDatas2(dt,dtInicio,dtFim));dt=df.parse("07/01/2008");System.out.println(df.format(dt)+" -> "+entreDuasDatas(dt,dtInicio,dtFim));System.out.println(df.format(dt)+" => "+entreDuasDatas2(dt,dtInicio,dtFim));dt=dt.parse("01/10/2007");System.out.println(df.format(dt)+" -> "+entreDuasDatas(dt,dtInicio,dtFim));System.out.println(df.format(dt)+" => "+entreDuasDatas2(dt,dtInicio,dtFim));dt=dt.parse("31/12/2007");System.out.println(df.format(dt)+" -> "+entreDuasDatas(dt,dtInicio,dtFim));System.out.println(df.format(dt)+" -> "+entreDuasDatas2(dt,dtInicio,dtFim));}}