小编muh*_*dto的帖子

无论日期如何,查找小时范围是否重叠

我有一组两个小时的范围

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)

java jodatime java-8

1
推荐指数
1
解决办法
2917
查看次数

标签 统计

java ×1

java-8 ×1

jodatime ×1