2012-03-21 85 views
0

我試圖從UIDatePicker(MM-dd格式)獲取日期,並檢查它是否在兩個其他日期的範圍內;如何檢查日期(從日期選擇器)是否在兩個其他日期之間? objective-c

我已經嘗試過很多不同的方式,我認爲我的想法已經走到了很遠:) 有人可以幫我做到這一點,它應該是簡單的嗎?

這是我最後一次嘗試代碼:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"MM-dd"]; 
NSString *theDate = [dateFormat stringFromDate:birthdateSelector.date]; 
NSDate *birthdate = [dateFormat dateFromString:theDate]; 

NSString *Capricorn_Start = @"12-22" ; 
NSString *Capricorn_End = @"01-19" ; 

if ([birthdate laterDate:[dateFormat dateFromString:Capricorn_End]] && [birthdate earlierDate:[dateFormat dateFromString:Capricorn_Start]]){ 

    NSLog(@"im capricorn"); 
} 

感謝, 阿米爾。

+0

[如何檢查兩個其他NSDates之間是否發生NSDate]的可能重複(http://stackoverflow.com/questions/1072848/how-to-check-if-an-nsdate-occurs-between-two- other-nsdates) – 2012-03-21 17:57:20

回答

1

如果你有dateAdateBDATEC,並且要檢查是否dateA < dateB < DATEC,你可以得到dateA-dateB之間的區別dateB-dateC這將給你diffXdiffY。如果diffX符號與diffY相同符號,這將意味着dateB一個C之間

或者,換句話說,你的代碼應該是這樣的:

NSTimeInterval diffX = [dateB timeIntervalSinceDate:dateA]; 
NSTimeInterval diffY = [dateC timeIntervalSinceDate:dateB]; 

if (signbit(diffX) == signbit(diffY)) 
{ 
    // dateB is in-between dateA and dateC 
} 
+1

謝謝,謝謝,再次!謝謝 ! – 2012-03-21 16:49:23

2

方法laterDateearlierDate返回NSDate。您應該使用compare:並檢查返回值。

0

您可以添加一年(兩者相同),然後從1970年開始獲取時間,然後進行比較。

相關問題