查找当前时间是否在范围之间

Tom*_*ear 10 iphone objective-c nsdate ios

如果日期介于某个范围之间,我可以找到如何获取,但我似乎无法在特定时间创建日期.

什么是最简单的方法来查看[NSDate日期]是否在一个时间范围之间?

我想显示如下的个性化问候语:

下午12点 - 4:59:9999 @"下午好,foo"下午
5点 - 晚上9点59分:晚上9点9分"晚上好,foo"
12点 - 11:59:9999上午@"早上好,foo"

Joe*_*Joe 51

是的,您可以使用NSDateComponents哪个将以24小时格式返回小时.

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit fromDate:[NSDate date]];
NSInteger hour = [components hour];

if(hour >= 0 && hour < 12)
    NSLog(@"Good morning, foo");
else if(hour >= 12 && hour < 17)
    NSLog(@"Good afternoon, foo");
else if(hour >= 17)
    NSLog(@"Good evening, foo");
Run Code Online (Sandbox Code Playgroud)

斯威夫特3

let hour = Calendar.current.component(.hour, from: Date())

if hour >= 0 && hour < 12 {
    print("Good Morning")
} else if hour >= 12 && hour < 17 {
    print("Good Afternoon")
} else if hour >= 17 {
    print("Good Evening")
}
Run Code Online (Sandbox Code Playgroud)