Java 判断两个时间区间是否存在重叠
时间: 2023-11-23 13:07:27 浏览: 44
可以通过比较时间区间的开始时间和结束时间,判断是否有重叠。
以下是一个示例代码:
```java
public static boolean isOverlap(Date start1, Date end1, Date start2, Date end2) {
// 如果时间区间1的结束时间在时间区间2的开始时间之后,或者时间区间2的结束时间在时间区间1的开始时间之前,则存在重叠
return end1.after(start2) && end2.after(start1);
}
```
使用示例:
```java
Date start1 = new Date(2021, 1, 1, 10, 0, 0);
Date end1 = new Date(2021, 1, 1, 12, 0, 0);
Date start2 = new Date(2021, 1, 1, 11, 0, 0);
Date end2 = new Date(2021, 1, 1, 13, 0, 0);
boolean isOverlap = isOverlap(start1, end1, start2, end2);
System.out.println(isOverlap); // true
```
在上面的示例中,时间区间1为 10:00-12:00,时间区间2为 11:00-13:00,存在重叠。
相关问题
java 如何判断两个数字区间重叠
在Java中,判断两个数字区间是否重叠可以使用以下代码:
```java
public static boolean overlap(double start1, double end1, double start2, double end2) {
if (start1 > end1 || start2 > end2) {
throw new IllegalArgumentException("Invalid input");
}
return Math.max(start1, start2) <= Math.min(end1, end2);
}
```
其中,start1和end1表示第一个数字区间的起始位置和终止位置,start2和end2表示第二个数字区间的起始位置和终止位置。该函数返回true表示两个数字区间重叠,返回false表示两个数字区间不重叠。
该函数的实现思路和判断两个数据区间是否重叠的函数类似,先判断输入是否合法,然后比较两个数字区间的起始位置和终止位置,取最大值作为重叠区间的起始位置;取最小值作为重叠区间的终止位置,如果重叠区间的起始位置小于等于终止位置,则说明两个数字区间重叠。
java中如何判断两个数据区间重叠
在Java中,可以使用以下代码判断两个数据区间是否重叠:
```java
public static boolean overlap(int start1, int end1, int start2, int end2) {
if (start1 > end1 || start2 > end2) {
throw new IllegalArgumentException("Invalid input");
}
return Math.max(start1, start2) <= Math.min(end1, end2);
}
```
其中,start1和end1表示第一个数据区间的起始位置和终止位置,start2和end2表示第二个数据区间的起始位置和终止位置。该函数返回true表示两个数据区间重叠,返回false表示两个数据区间不重叠。
该函数的实现思路是,先判断输入是否合法。然后,比较两个数据区间的起始位置,取最大值作为重叠区间的起始位置;比较两个数据区间的终止位置,取最小值作为重叠区间的终止位置。如果重叠区间的起始位置小于等于终止位置,则说明两个数据区间重叠。