LocalTime实现
时间: 2023-11-11 22:04:16 浏览: 36
如果只需要比较时间而不需要考虑日期,可以使用 `LocalTime` 类型,以下是使用 `LocalTime` 实现的 Java 代码:
```java
public static boolean checkOverlap(LocalTime start1, LocalTime end1, LocalTime start2, LocalTime end2, LocalTime startCheck, LocalTime endCheck) {
if (startCheck.isAfter(endCheck)) {
return false;
}
if (start1.isAfter(end2) && !start1.isAfter(endCheck) || end1.isBefore(start2) && !end1.isBefore(startCheck)) {
// 不跨夜
return false;
}
LocalTime overlapStart = start1.max(start2).max(startCheck.toLocalTime());
LocalTime overlapEnd = end1.min(end2).min(endCheck.toLocalTime());
if (overlapStart.isAfter(overlapEnd)) {
// 不跨夜
return false;
}
if (start1.isAfter(end2) && startCheck.isBefore(endCheck) || end1.isBefore(start2) && endCheck.isAfter(startCheck)) {
// 跨夜
return true;
}
return false;
}
```
与前面的代码类似,只是将 `LocalDateTime` 类型改为了 `LocalTime` 类型,同时增加了一些判断条件来处理跨夜的情况。
阅读全文