【问题标题】:Detecting time range in ios using Swift [closed]使用 Swift 检测 ios 中的时间范围 [关闭]
【发布时间】:2016-08-06 12:56:04
【问题描述】:

假设我有一些规则来显示如下所示的消息

00:00-12:00 之间 -> 早上

12:01-14:00 -> 中午

14:01-17:00 -> 下午

17:00-23:59 -> 晚上

如果当前移动时间在 00:00 到 12:00 之间,我应该是早上 我该怎么做,请指导。

【问题讨论】:

    标签: ios swift nsdate nscalendar


    【解决方案1】:

    这应该可以完成工作

    func check(time: NSDate) -> String? {
        let formatter = NSDateFormatter()
        formatter.dateFormat = "HH:mm"
        formatter.timeZone = NSTimeZone(name: "GMT")
        guard let
            beginNoon = formatter.dateFromString("12:00"),
            beginAfternoon = formatter.dateFromString("14:00"),
            beginEvening = formatter.dateFromString("17:00")
            else { return nil }
    
        if time.compare(beginNoon) == .OrderedAscending { return "Morning" }
        if time.compare(beginAfternoon) == .OrderedAscending { return "Noon"}
        if time.compare(beginEvening) == .OrderedAscending { return "Afternoon" }
        return "Evening"
    }
    

    测试

    check(formatter.dateFromString("10:00")!) // "Morning"
    check(formatter.dateFromString("13:00")!) // "Noon"
    check(formatter.dateFromString("15:00")!) // "Afternoon"
    check(formatter.dateFromString("22:00")!) // "Evening"
    

    注意事项

    您的范围不一致

    这里包括leftright 边界

    00:00-12:00 -> morning
    

    这里只包含right 边界

    12:01-14:00 -> noon
    14:01-17:00 -> afternoon
    

    这里只有left 边界:)

    between 17:00-23:59 
    

    在我的代码中,left 边界仅包括在内,而 right 边界被排除在外。

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      相关资源
      最近更新 更多