【问题标题】:Opening and closing times with 24 hour clock24 小时制的开放和关闭时间
【发布时间】:2016-07-16 06:01:24
【问题描述】:

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

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

因此,我的问题是如何有效地处理上午 0 点到 12 点的时间?

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

【问题讨论】:

    标签: ios clock nscalendar


    【解决方案1】:

    这样的事情应该可以工作:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-20
      • 2016-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-01
      • 1970-01-01
      • 2021-12-24
      相关资源
      最近更新 更多