假设我有一些显示如下消息的规则
<00>在00:00-12:00之间 - >早上在12:01-14:00之间 - >中午
在14:01-17:00之间 - &gt;下午
在17:00-23:59之间 - &gt;晚上
如果当前的移动时间在00:00到12:00之间我应该早上到 我该怎么做才能引导。
答案 0 :(得分:3)
这应该做的工作
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
排除的范围内。