java 判断两个日期是否有重叠
时间: 2023-05-03 20:06:00 浏览: 360
要判断两个日期是否有重叠,我们需要比较它们的起始时间和结束时间。首先,定义两个时间段,分别为[a1,b1]和[a2,b2]:
1. 如果a1 > b1或者a2 > b2,则表示起始时间大于结束时间,这样两个时间段肯定没有重叠。
2. 如果b1 < a2或者b2 < a1,则表示两个时间段没有交集,也没有重叠。
3. 如果a1 <= b1且a2 <= b2,且b1 >= a2且b2 >= a1,则表示两个时间段有重叠。
具体实现可以将这个过程封装成一个方法,传入两个日期参数,来进行比较。例如:
public static boolean isOverlap(Date start1, Date end1, Date start2, Date end2) {
long s1 = start1.getTime();
long e1 = end1.getTime();
long s2 = start2.getTime();
long e2 = end2.getTime();
if (s1 > e1 || s2 > e2) {//情况1
return false;
} else if (e1 < s2 || e2 < s1) {//情况2
return false;
} else {//情况3
return true;
}
}
在这个方法中,我们利用getTime()方法得到每个日期的毫秒数,然后比较它们的大小。如果满足情况1或情况2,则返回false,表示没有重叠;如果满足情况3,则返回true,表示有重叠。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)