Date startTime;
Date endTime;
Date someTime;
if ((startTime.before(someTime)) && (someTime.before(endTime)))
System.out.println("在范围内!");
Date endTime;
Date someTime;
if ((startTime.before(someTime)) && (someTime.before(endTime)))
System.out.println("在范围内!");
someTime是否对应的是我上边例子中的2002-10-1 12:10:12?
那么endTime对应的是那个时间呢?是2002-12-31 24:30:00还是2002-10-13 05:30:20?
((startTime.before(someTime)) && (someTime.before(endTime)))
换成
((startTime.before(somestartTime)) && (endTime.after(someendTime)))就行
class TimeRange
{
private Calendar fromCal = null;
private Calendar toCal = null;
public TimeRange(String fromTimeStr,String toTimeStr)
{
this.fromCal = this.makeCalendar(fromTimeStr);
this.toCal = this.makeCalendar(toTimeStr);
}
public Calendar getFromCal()
{
return this.fromCal;
}
public Calendar getToCal()
{
return this.toCal;
}
private Calendar makeCalendar(String timeStr)
{
.....
Calendar ret = new GregorianCalendar();
ret.set(....)
return ret;
}
public boolean isContain(TimeRange anotherTimeRange)
{
....
boolean isContain = anotherTimeRange.getFromCal().after(this.fromCal) &&
anotherTimeRange.getToCal().before(this.toCal);
return isContain;
}
/**
* test this class
*/
public static void main(String[] args)
{
String t1 = "2001-1-3 12:20:10 ";
String t2 = "2001-1-4 12:20:10 ";
String t3 = "2001-1-1 12:20:10 ";
String t4 = "2001-1-5 12:20:10 ";
TimeRange r1 = new TimeRange(t1,t2);
TimeRange r2 = new TimeRange(t3,t4);
System.out.println(r1.isContain(r2));
}
}