考虑到24小时制,需要跨夜
时间: 2023-09-05 10:08:07 浏览: 69
C语言将24小时制转换为12小时制的方法
如果需要考虑到跨夜的情况,可以使用 `LocalDateTime` 类型,并增加一些判断条件。以下是 Java 实现:
```java
public static boolean checkOverlap(LocalDateTime start1, LocalDateTime end1, LocalDateTime start2, LocalDateTime end2, LocalDateTime startCheck, LocalDateTime endCheck) {
if (startCheck.isAfter(endCheck)) {
return false;
}
if (start1.isAfter(end2) || end1.isBefore(start2)) {
// 不跨夜
return false;
}
LocalDateTime overlapStart = start1.max(start2).max(startCheck);
LocalDateTime overlapEnd = end1.min(end2).min(endCheck);
if (overlapStart.isAfter(overlapEnd)) {
// 不跨夜
return false;
}
if (start1.toLocalTime().isAfter(end2.toLocalTime()) && endCheck.toLocalTime().isBefore(startCheck.toLocalTime())) {
// 跨夜
return true;
}
return false;
}
```
这里增加了一个判断条件,如果第一个时间段的开始时间晚于第二个时间段的结束时间,并且要检查的时间段的结束时间早于要检查的时间段的开始时间,那么就认为这两个时间段是跨夜的。
阅读全文