24 小时制的开门和关门时间

Opening and closing times with 24 hour clock

我正在开发一个应用程序,我需要确保其中的服务是开放的(即当前时间在服务的开放时间内)。

我使用的是 24 小时制时钟,但在编写使其正常工作的逻辑时遇到了困难,这主要是由于夜间 (0-12) 小时。我当前的解决方案如下,但正如我所提到的,它不起作用,因为如果关闭时间是 5(上午 5 点)并且当前时间是 22(晚上 10 点),则 22>5 = true,所以它 returns false 并且失败。

因此我的问题是如何有效处理凌晨 0-12 点的时间?

if (self.hour < start || self.hour >= end)
    return false;
else
    return true;

像这样的东西应该可以工作:

// 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")
    }
}