查找当前时间是否在一个范围内
问题描述:
我可以找到如何得到一个日期是否在一个范围内,但我看不出如何在特定时间创建一个日期。查找当前时间是否在一个范围内
如果[NSDate date]在时间范围之内,最简单的方法是什么?
我要显示个性化的问候像下面这样:
12点 - 4:59:9999点@ “下午好,富”
下午5时 - 11:59:9999点@”晚上好,富”
上午12点 - 11:59:9999上午@‘早上好,富’
答
是的,你可以使用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");
斯威夫特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")
}
答
使用NSCalendar
实例来创建一个NSDateComponents
比如你的NSDate
的,那么就检查时,分和012的秒属性并提供适当的信息。
答
你可以只使用类NSDate
抢在iPhone上的时间。
NSDate * today = [NSDate date];
NSCalendar * cal = [[NSCalendar alloc] initWithCalendarIdentifier: NSGregorianCalendar];
NSDateComponents * comps = [cal components:NSHourCalendarUnit fromDate:today];
if ([comps hour]>0 && [comps hour] < 12)
NSLog(@"Good morning, foo");
if ([comps hour] > 12 && [comps hour] < 17)
NSLog(@"Good afternoon, foo");
if ([comps hour] >17 && [comps hour]<24 )
NSLog(@"Good evening, foo");
答
更新了雨燕3.0
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")
}
答
中午是12:00 PM。 下午从12:01 PM到约5:00 PM。 晚上是从下午5:01到晚上8点,或在日落前后。 夜景从日落到日出,所以从8:01 PM直到5:59 AM。
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSCalendarUnitHour fromDate:[NSDate date]];
[components setTimeZone:[NSTimeZone localTimeZone]];
NSInteger hour = [components hour];
if(hour >= 6 && hour < 12)
NSLog(@"Good morning!");
else if(hour >= 12 && hour < 17)
NSLog(@"Good afternoon!");
else if(hour >= 17 && hour < 20)
NSLog(@"Good evening!");
else if((hour >= 20) || (hour >= 0 && hour < 6))
NSLog(@"Good night!");
不幸的是,我今天的票数不足。不错,但答案。 –
我不是没票。 +1。 –
从iOS8开始,你需要使用NSCalendarUnitHour,但是答案很好。 –