import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List;
class TimeRange { private Date startTime; private Date endTime;
public TimeRange(Date startTime, Date endTime) {
this.startTime = startTime;
this.endTime = endTime;
}
public Date getStartTime() {
return startTime;
}
public Date getEndTime() {
return endTime;
}
}
public class TimeRangeValidator { public static boolean validateTimeRanges(List timeRanges) { for (int i = 0; i < timeRanges.size(); i++) { TimeRange currentRange = timeRanges.get(i); for (int j = i + 1; j < timeRanges.size(); j++) { TimeRange otherRange = timeRanges.get(j); if (isOverlapping(currentRange, otherRange)) { return false; } } } return true; }
private static boolean isOverlapping(TimeRange range1, TimeRange range2) {
return range1.getStartTime().before(range2.getEndTime()) &&
range2.getStartTime().before(range1.getEndTime());
}
public static void main(String[] args) throws ParseException {
// 示例用法
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
List<TimeRange> timeRanges = new ArrayList<>();
timeRanges.add(new TimeRange(sdf.parse("2023-06-30 09:00:00"), sdf.parse("2023-06-30 12:00:00")));
timeRanges.add(new TimeRange(sdf.parse("2023-06-30 11:00:00"), sdf.parse("2023-06-30 14:00:00")));
timeRanges.add(new TimeRange(sdf.parse("2023-06-30 15:00:00"), sdf.parse("2023-06-30 17:00:00")));
boolean isValid = validateTimeRanges(timeRanges);
System.out.println("时间段校验结果: " + isValid);
}
}