我可以找到如何得到一個日期是否在一個範圍內,但我看不出如何在特定時間創建一個日期。查找當前時間是否在一個範圍內
如果[NSDate date]在時間範圍之內,最簡單的方法是什麼?
我要顯示個性化的問候像下面這樣:
12點 - 4:59:9999點@ 「下午好,富」
下午5時 - 11:59:9999點@」晚上好,富」
上午12點 - 11:59:9999上午@‘早上好,富’
我可以找到如何得到一個日期是否在一個範圍內,但我看不出如何在特定時間創建一個日期。查找當前時間是否在一個範圍內
如果[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,但是答案很好。 –