java 使用LocalTime实现24小时制,分两个连续时间区间,传入一个时间段,判断属于哪个区间,考虑到跨夜问题,
时间: 2024-01-07 19:02:25 浏览: 147
Java 判断一个时间是否在另一个时间段内
可以使用LocalTime的compareTo方法来比较时间的先后顺序。具体实现可以参考以下代码:
```java
LocalTime startTime1 = LocalTime.of(8, 0); // 第一个时间区间开始时间
LocalTime endTime1 = LocalTime.of(18, 0); // 第一个时间区间结束时间
LocalTime startTime2 = LocalTime.of(18, 0); // 第二个时间区间开始时间
LocalTime endTime2 = LocalTime.of(8, 0); // 第二个时间区间结束时间
LocalTime inputStartTime = LocalTime.parse("13:30"); // 输入的时间段开始时间
LocalTime inputEndTime = LocalTime.parse("19:00"); // 输入的时间段结束时间
// 判断是否跨夜
if (inputStartTime.isAfter(inputEndTime)) {
inputEndTime = inputEndTime.plusDays(1);
}
// 判断属于哪个时间区间
if (inputStartTime.compareTo(startTime1) >= 0 && inputEndTime.compareTo(endTime1) <= 0) {
System.out.println("属于第一个时间区间");
} else if (inputStartTime.compareTo(startTime2) >= 0 || inputEndTime.compareTo(endTime2) <= 0) {
System.out.println("属于第二个时间区间");
} else {
System.out.println("不属于任何时间区间");
}
```
在判断时间跨夜时,可以使用LocalTime的isAfter方法来比较开始时间和结束时间的先后顺序,如果开始时间晚于结束时间,则说明跨夜了,需要把结束时间加一天。在判断属于哪个时间区间时,可以使用LocalTime的compareTo方法来比较时间的先后顺序,根据不同的比较结果来判断属于哪个时间区间。注意,第二个时间区间的结束时间是第二天的早上8点,因此需要特殊处理。
阅读全文