我正在开发一个应用程序,我需要确保服务是开放的(即当前时间在服务的开放时间内)。
我正在使用24小时制,并且难以编写逻辑以使其正常工作,主要是因为一夜之间(0-12)小时。我目前的解决方案如下,但正如我所提到的,它不起作用,因为如果关闭时间是5(早上5点)而当前时间是22(晚上10点),22> 5 =真,那么它返回false并失败。
因此,我的问题是如何有效地处理0-12小时?
if (self.hour < start || self.hour >= end)
return false;
else
return true;
答案 0 :(得分:0)
这样的事情应该有效:
// get current hour
let calendar = NSCalendar.currentCalendar()
let now = NSDate()
let dateComponents = calendar.components(.Hour, fromDate: now)
let currentHour = dateComponents.hour
// opening hours
let startingHour = 22
let endingHour = 6
// check for different starting and ending hour
if startingHour == endingHour {
print("no valid opening hours")
// return
}
// check if current hour is within opening hours
if startingHour < endingHour {
// e.g. 7 - 15
if currentHour >= startingHour && currentHour < endingHour {
print("opened")
} else {
print("closed")
}
} else {
// e.g. 22 - 6
if currentHour >= startingHour || currentHour < endingHour {
print("opened")
} else {
print("closed")
}
}