因此,我现在有了一组范围,这样每个范围都代表一个已占用的插槽,我需要确定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;
}
}
我错过了一个介于两者之间的信息,我想确定给定的时间范围是介于两者之间还是等于所采取的任何时隙,以避免重叠。有什么想法是最好的方法吗?我希望有一个非常简单且紧凑的解决方案,该解决方案始终适用于这种情况。开放所有建议,值得一试!如果需要进一步澄清,很高兴分享更多详细信息预先感谢!
这里有一个非常简单的问题,但需要一些逻辑专家才能解决。因此,我有一个API,以24小时int格式返回给定时隙的开始和结束时间,例如:...
hour
,minute
),范围开始时间(startHour
,startMinute
)和范围结束时间(endHour
,endMinute
)。要检查时间是否在范围内,低位包括,高位排除,如果您检查时间是否在时间之外,会更容易: