我有一组两个小时的范围
10 PM - 02 AM
01 AM - 08 AM
Run Code Online (Sandbox Code Playgroud)
无论日期如何,我都想检查它们中的任何一个是否重叠。
例如:第一个范围可能是 8 月 1 日和 2 日,而第二个范围可能是 8 月 10 日。
这是我到目前为止
private Interval createInterval(final OpeningClosingTimesEntry entry) {
LocalDateTime openingHour = LocalDateTime.fromDateFields(entry.getOpenTime());
LocalDateTime closingHour = LocalDateTime.fromDateFields(entry.getCloseTime());
if(closingHour.isBefore(openingHour)){
closingHour = closingHour.plusDays(1);
}
return new Interval(openingHour.toDate().getTime(), closingHour.toDate().getTime());
}
private Interval adjustSecondIntervalDay(final Interval interval1, final Interval interval2){
if(interval1.getEnd().getDayOfYear() > interval2.getStart().getDayOfYear()){
DateTime start = interval2.getStart().plusDays(1);
DateTime end = interval2.getEnd().plusDays(1);
return new Interval(start, end);
}
return interval2;
}
Run Code Online (Sandbox Code Playgroud)