【发布时间】: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
假设我有一些规则来显示如下所示的消息
00:00-12:00 之间 -> 早上
12:01-14:00 -> 中午
14:01-17:00 -> 下午
17:00-23:59 -> 晚上
如果当前移动时间在 00:00 到 12:00 之间,我应该是早上 我该怎么做,请指导。
【问题讨论】:
标签: ios swift nsdate nscalendar
这应该可以完成工作
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"
您的范围不一致
这里包括left 和right 边界
00:00-12:00 -> morning
这里只包含right 边界
12:01-14:00 -> noon
14:01-17:00 -> afternoon
这里只有left 边界:)
between 17:00-23:59
在我的代码中,left 边界仅包括在内,而 right 边界被排除在外。
【讨论】: