判断两个时间段是否重叠
时间: 2023-08-27 16:05:46 浏览: 144
判断两个时间段是否重叠可以根据它们的开始时间和结束时间进行比较。如果两个时间段的结束时间早于或等于另一个时间段的开始时间,或者两个时间段的开始时间晚于或等于另一个时间段的结束时间,则这两个时间段不重叠。反之,如果两个时间段的结束时间晚于另一个时间段的开始时间,并且两个时间段的开始时间早于另一个时间段的结束时间,则这两个时间段重叠。
相关问题
java 时间段重叠_java 判断两个时间段是否重叠的案例
判断两个时间段是否重叠可以通过比较两个时间段的开始时间和结束时间来实现。以下是一个 Java 实现的例子:
```java
public static boolean isOverlap(Date start1, Date end1, Date start2, Date end2) {
// 如果两个时间段有一个为空,则认为它们不重叠
if (start1 == null || end1 == null || start2 == null || end2 == null) {
return false;
}
// 如果第一个时间段的结束时间早于第二个时间段的开始时间,则认为它们不重叠
if (end1.before(start2)) {
return false;
}
// 如果第一个时间段的开始时间晚于第二个时间段的结束时间,则认为它们不重叠
if (start1.after(end2)) {
return false;
}
// 否则,它们重叠
return true;
}
```
使用示例:
```java
Date start1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-01-01 09:00:00");
Date end1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-01-01 12:00:00");
Date start2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-01-01 10:00:00");
Date end2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2021-01-01 13:00:00");
if (isOverlap(start1, end1, start2, end2)) {
System.out.println("时间段重叠");
} else {
System.out.println("时间段不重叠");
}
```
输出结果为:时间段重叠。
Mysql数据库判断两个时间段是否重叠
判断两个时间段是否重叠,可以通过以下SQL语句来实现:
```sql
SELECT *
FROM table_name
WHERE (start_time1 <= end_time2) AND (end_time1 >= start_time2);
```
其中,`table_name`是指需要进行判断的表名,`start_time1`和`end_time1`表示第一个时间段的开始时间和结束时间,`start_time2`和`end_time2`表示第二个时间段的开始时间和结束时间。如果查询结果不为空,则表示两个时间段有重叠部分;如果查询结果为空,则表示两个时间段没有重叠部分。
阅读全文