有一个比较简单的问题需要解决,但需要一些逻辑专业知识来解决。我有一个API返回给定时间段的开始和结束时间,24小时整数格式(例如:开始时间为4点30分,结束时间为5点30分)。请注意,返回的时间段是以30分钟为增量的,因此给定小时将从1到24,给定分钟将为30或0。
现在我有一组范围,每个范围表示已占用的时间段,我需要确定API返回的任何给定时间是否与这些时间段重叠或落入其中(这些时间段的小时数可以从1到24,但分钟数可能不同,可以是0到59之间的任意值)。
我的逻辑如下:
现在我有一组范围,每个范围表示已占用的时间段,我需要确定API返回的任何给定时间是否与这些时间段重叠或落入其中(这些时间段的小时数可以从1到24,但分钟数可能不同,可以是0到59之间的任意值)。
我的逻辑如下:
for (int i = 0; i < ranges.size(); i++) {
int rangeStartHour = ranges.get(i).getStartTime().getHour();
int rangeEndHour = ranges.get(i).getEndTime().getHour();
int rangeStartMinute = ranges.get(i).getStartTime().getMinute();
int rangeEndMinute = ranges.get(i).getStartTime().getMinute();
if ((rangeStartHour == 0 && rangeEndHour == 24
&& rangeStartMinute == 0 && rangeEndMinute == 0)) {
isAvailable = false;
} else {
isAvailable = true;
}
}
我需要在其中加入一个 if 判断语句,以便判断给定的时间范围是否处于占用时间段之间或重叠。有什么好的方法来解决这个问题吗?我希望能够得到一个简单而紧凑的解决方案,可以始终适用于这种情况。欢迎提出所有建议,值得一试!如果需要进一步澄清,我很乐意分享更多细节。 先行致谢!