/**
* @Author Ming
* @Description 判断两个时间区间是否有交集
* @Date 2021/6/2 17:34
* @Param startDateOne 第一个区间开始时间
* @param endDateOne 第一个区间结束时间
* @param startDateTwo 第二个区间开始时间
* @param endDateTwo 第二个区间结束时间
* @return Boolean 返回值 如果为true 没有交集 false有交集
**/
public static Boolean isInterSection(Date startDateOne, Date endDateOne, Date startDateTwo, Date endDateTwo) {
/**
* 已知 开始时间绝对无法大于结束时间 前端传入的时间值 所以开始时间无法大于结束时间是前端控制的
* 需求 判断两个时间段是否有交集
* 判断条件 不交集的情况有两种
* 第一种
* startDateOne = "2021-06-02 10:00"; 1
* endDateOne = " 2021-06-02 10:31"; 2
* startDateTwo = "2021-06-02 09:30"; 3
* endDateTwo = " 2021-06-02 09:45"; 4
* 1 大于 3跟4 or 1等于 4 大于 3
*
* 第二种
* startDateOne = "2021-06-02 10:00"; 1
* endDateOne = " 2021-06-02 10:31"; 2
* startDateTwo = "2021-06-02 19:30"; 3
* endDateTwo = " 2021-06-02 19:45"; 4
* 2 小于 3跟4 or 2等于3小于 4
*
* 既判断条件为 1 >= 4 or 2 <= 3
*
*/
if(startDateOne.getTime() >= endDateTwo.getTime() || endDateOne.getTime() <= startDateTwo.getTime()){
return true;
}else {
return false;
}
}
此方法还是有瑕疵滴 如果开始大于结束时间 可能会有八阿哥
版权声明:本文为qq270956251原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。