请使用LocalTime
时间: 2023-08-14 13:05:25 浏览: 83
好的,那么我将使用 `LocalTime` 类来解决您的问题,以下是更新后的代码:
```java
public static void main(String[] args) {
// 定义两个时间区间,分别为 8:00 - 12:00 和 20:00 - 24:00
LocalTime startTime1 = LocalTime.of(8, 0);
LocalTime endTime1 = LocalTime.of(12, 0);
LocalTime startTime2 = LocalTime.of(20, 0);
LocalTime endTime2 = LocalTime.of(0, 0);
// 输入一个时间段
LocalTime inputStartTime = LocalTime.of(0, 0);
LocalTime inputEndTime = LocalTime.of(23, 0);
// 处理 00:00 这个时间点
if (endTime2.equals(LocalTime.of(0, 0))) {
endTime2 = LocalTime.of(23, 59, 59);
}
if (inputStartTime.equals(LocalTime.of(0, 0))) {
inputStartTime = LocalTime.of(0, 1);
}
if (inputEndTime.equals(LocalTime.of(0, 0))) {
inputEndTime = LocalTime.of(23, 59, 59);
}
// 判断属于哪个时间区间
boolean isBelongToFirstInterval = inputStartTime.compareTo(startTime1) >= 0
&& inputEndTime.compareTo(endTime1) <= 0;
boolean isBelongToSecondInterval = inputStartTime.compareTo(startTime2) >= 0
&& inputEndTime.compareTo(endTime2) <= 0;
if (isBelongToFirstInterval) {
System.out.println("属于第一个时间区间");
} else if (isBelongToSecondInterval) {
System.out.println("属于第二个时间区间");
} else {
System.out.println("不属于任何时间区间");
}
}
```
在这个代码中,我们使用 `LocalTime` 类来处理时间,而不是使用 `LocalDateTime`。为了解决 00:00 这个时间点的问题,我们将其转换为 00:01,将区间的结束时间也转换为 23:59:59,这样就可以正确地参与比较了。
如果您还有任何问题或疑问,请随时与我联系。
阅读全文