开放和关闭时间为24小时制

时间:2016-03-28 21:25:45

标签: ios clock nscalendar

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

我正在使用24小时制,并且难以编写逻辑以使其正常工作,主要是因为一夜之间(0-12)小时。我目前的解决方案如下,但正如我所提到的,它不起作用,因为如果关闭时间是5(早上5点)而当前时间是22(晚上10点),22> 5 =真,那么它返回false并失败。

因此,我的问题是如何有效地处理0-12小时?

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

1 个答案:

答案 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")
    }
}