2011-10-06 47 views
0

我在這裏有這樣的任務Nsdate功能:目標c

寫一個函數:between? (時間,開始,結束),其中時間,開始,結束:時間格式爲「hh:mm」

例如「23:15」。如果「時間」落在「開始」和「結束」之間,函數應該返回TRUE。案例結束<例如開始(「23:11」「8:05」)應被視爲:從第二天的「開始」到「結束」。

我這樣做

NSAutoreleasePool * pool = [­[NSAutoreleasePool alloc] init]; 

NSDateFormatter* dateFormatter = [­[[NSDateFormatter alloc] init] autorelease]; 
dateFormatter.dateFormat = @"HH:mm"; 
NSDate * time = [dateFormatter dateFromString:@"24:00"]; 
NSDate * start = [dateFormatter dateFromString:@"23:50"]; 
NSDate * end = [dateFormatter dateFromString:@"03:00"]; 

if(start<time) 
{ 
if (end>time) 
{ 
NSLog(@"YES"); 
} 
} 

但如何做一個背景檢查,爲了測試第二天?如示例 , 有什麼想法?

+0

提示:將日期格式化程序的時區設置爲GMT,否則會令你發瘋。 –

+0

而不是一個不會工作的格式HH:mm? –

回答

0

我想你可以做的就是驗證end < start並且在這種情況下加上+24小時到end。然後只驗證time > start && time < end是否可以解決問題。