js 判断时间区间是否重叠
时间: 2023-07-29 08:09:38 浏览: 55
可以使用以下的 JavaScript 代码来判断两个时间区间是否重叠:
```javascript
function isTimeOverlap(start1, end1, start2, end2) {
return !(end1 <= start2 || start1 >= end2);
}
// 示例用法
const start1 = new Date('2021-10-01T09:00:00');
const end1 = new Date('2021-10-01T10:00:00');
const start2 = new Date('2021-10-01T09:30:00');
const end2 = new Date('2021-10-01T11:00:00');
const isOverlap = isTimeOverlap(start1, end1, start2, end2); // true
```
其中,`start1` 和 `end1` 分别表示第一个时间区间的起始时间和结束时间,`start2` 和 `end2` 分别表示第二个时间区间的起始时间和结束时间。函数返回 `true` 表示两个时间区间有重叠,返回 `false` 表示两个时间区间没有重叠。
相关问题
Java 判断两个时间区间是否存在重叠
可以通过比较时间区间的开始时间和结束时间,判断是否有重叠。
以下是一个示例代码:
```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,存在重叠。
判断一个时间区间是否与另一个时间区间有重叠
判断两个时间区间是否有重叠,可以将它们看成在数轴上的两个区间,然后比较它们的位置关系。如果两个区间的交集不为空,则它们有重叠。具体实现可以比较它们的左右端点大小关系,比较左端点的最大值和右端点的最小值是否满足交集不为空的条件。
以下是 Python 代码实现:
```python
def is_overlap(interval1, interval2):
"""
判断两个时间区间是否有重叠
interval1: 第一个时间区间,用左右端点表示,如 [1, 3]
interval2: 第二个时间区间,用左右端点表示,如 [2, 4]
"""
l1, r1 = interval1
l2, r2 = interval2
return max(l1, l2) <= min(r1, r2)
```
示例用法:
```python
interval1 = [1, 3]
interval2 = [2, 4]
if is_overlap(interval1, interval2):
print("两个时间区间有重叠")
else:
print("两个时间区间没有重叠")
```
输出结果为:
```
两个时间区间有重叠
```