现在有两个区间 一个是10:00:00和23:00:00 一个是23:00:00和10:00:00 判断23:00:00和00:00:00 在不在区间 java代码实现
时间: 2023-07-31 12:09:03 浏览: 45
对于这种跨越一天的时间段,可以将其表示为一个24小时的时间段,例如将23:00:00到10:00:00表示为23:00:00到24:00:00和00:00:00到10:00:00两个区间。然后,我们可以使用LocalTime类来判断给定的时间是否在这个24小时的时间段内。以下是Java代码实现:
```
public static boolean isTimeWithinRange(LocalTime startTime, LocalTime endTime, LocalTime targetTime) {
if (endTime.isBefore(startTime)) { // 处理跨越一天的情况
return (targetTime.isAfter(startTime) && targetTime.isBefore(LocalTime.MAX))
|| (targetTime.isAfter(LocalTime.MIN) && targetTime.isBefore(endTime));
} else {
return targetTime.isAfter(startTime) && targetTime.isBefore(endTime);
}
}
// 示例用法
LocalTime startTime1 = LocalTime.parse("10:00:00");
LocalTime endTime1 = LocalTime.parse("23:00:00");
LocalTime startTime2 = LocalTime.parse("23:00:00");
LocalTime endTime2 = LocalTime.parse("10:00:00");
LocalTime targetTime = LocalTime.parse("00:00:00");
if (isTimeWithinRange(startTime1, endTime1, targetTime) || isTimeWithinRange(startTime2, endTime2, targetTime)) {
System.out.println("目标时间在区间内");
} else {
System.out.println("目标时间不在区间内");
}
```
该代码定义了一个isTimeWithinRange()方法,接受三个LocalTime参数,分别是时间段的开始时间、结束时间和目标时间。如果时间段跨越一天,将返回目标时间是否在这个24小时的时间段内。如果时间段不跨越一天,将直接比较目标时间是否在这个时间段内。最后,我们可以调用isTimeWithinRange()方法来判断目标时间是否在给定的时间段内。