Java 判断两个时间段是否有交叉

整体流程

首先,我们需要知道如何表示时间段。一般可以使用两个时间点来表示一个时间段,比如开始时间和结束时间。然后,我们需要比较两个时间段是否有交叉,即判断它们的时间段是否有重叠部分。下面是一个简单的流程表格:

步骤 描述
1 输入时间段A
2 输入时间段B
3 判断时间段A与B是否有交叉

具体步骤及代码

步骤1:输入时间段A

LocalDateTime startA = LocalDateTime.of(2022, 1, 1, 9, 0); // 开始时间点
LocalDateTime endA = LocalDateTime.of(2022, 1, 1, 12, 0);   // 结束时间点

步骤2:输入时间段B

LocalDateTime startB = LocalDateTime.of(2022, 1, 1, 10, 0); // 开始时间点
LocalDateTime endB = LocalDateTime.of(2022, 1, 1, 14, 0);   // 结束时间点

步骤3:判断时间段A与B是否有交叉

boolean isOverlap = startA.isBefore(endB) && endA.isAfter(startB); // 判断是否有交叉
if (isOverlap) {
    System.out.println("时间段A与时间段B有交叉。");
} else {
    System.out.println("时间段A与时间段B没有交叉。");
}

甘特图

gantt
    title 判断两个时间段是否有交叉
    dateFormat  YYYY-MM-DD
    section 时间段输入
    输入时间段A     :done, 2022-01-01, 1d
    输入时间段B     :done, after 输入时间段A, 1d
    section 判断交叉
    判断时间段交叉   :done, after 输入时间段B, 1d

关系图

erDiagram
    TIME段A {
        LocalDateTime start
        LocalDateTime end
    }
    TIME段B {
        LocalDateTime start
        LocalDateTime end
    }
    TIME段A ||--|| TIME段B : 判断交叉

通过以上步骤和代码,你就可以判断两个时间段是否有交叉了。希望这篇文章对你有帮助,如果还有其他问题,欢迎随时向我请教。祝你在学习Java的道路上越走越远!