判断两个时间段是否交叉

1. 流程概述

判断两个时间段是否交叉,可以通过比较开始时间和结束时间的大小关系来确定。下面是判断时间段交叉的流程图:

stateDiagram
    [*] --> 开始
    开始 --> 判断时间段1开始时间是否早于时间段2的结束时间 : 是
    判断时间段1开始时间是否早于时间段2的结束时间 --> 时间段不交叉
    判断时间段1开始时间是否早于时间段2的结束时间 --> 判断时间段2开始时间是否早于时间段1的结束时间 : 是
    判断时间段2开始时间是否早于时间段1的结束时间 --> 时间段不交叉
    判断时间段2开始时间是否早于时间段1的结束时间 --> 时间段交叉

2. 代码实现

下面是使用Java实现判断两个时间段是否交叉的代码,代码中有详细的注释解释每一步的作用:

import java.time.LocalTime;

public class TimeOverlapChecker {
    public static boolean isTimeOverlap(LocalTime start1, LocalTime end1, LocalTime start2, LocalTime end2) {
        // 判断时间段1的开始时间是否早于时间段2的结束时间
        if (start1.isBefore(end2)) {
            // 判断时间段2的开始时间是否早于时间段1的结束时间
            if (start2.isBefore(end1)) {
                // 时间段交叉
                return true;
            }
        }
        // 时间段不交叉
        return false;
    }

    public static void main(String[] args) {
        // 测试用例
        LocalTime start1 = LocalTime.of(9, 0);
        LocalTime end1 = LocalTime.of(12, 0);
        LocalTime start2 = LocalTime.of(11, 0);
        LocalTime end2 = LocalTime.of(14, 0);

        if (isTimeOverlap(start1, end1, start2, end2)) {
            System.out.println("时间段交叉");
        } else {
            System.out.println("时间段不交叉");
        }
    }
}

3. 测试结果

以上代码中的测试结果是时间段交叉,因为时间段1的结束时间12:00晚于时间段2的开始时间11:00,同时时间段2的结束时间14:00晚于时间段1的开始时间9:00。

4. 总结

通过以上代码实现和测试结果,我们可以得出判断两个时间段是否交叉的结论。在实际开发中,可以根据需求进行适当的调整和扩展,比如增加日期的判断,处理不同精度的时间段等。

希望本文对刚入行的小白了解如何实现"Java判断两个时间段是否交叉"有所帮助。