2011-11-09 47 views
0

我遇到了一個問題,請參閱下面的問題並幫助解決。比較兩個日期限制用戶選擇未來日期嗎?

我有一個日期選擇器,我在其中顯示(日期,月份,年份),當用戶選擇上一個日期時,例如2011年11月5日,標籤應該更新並顯示所選日期&如果用戶選擇未來日期在當前日期之後,它應該顯示一個提醒以選擇「當前或前一日期」。

下面是我無法實現條件的代碼。

NSDate *post = [NSDate date]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
dateFormat.dateStyle = NSDateFormatterMediumStyle; 
NSString *theDate = [dateFormat stringFromDate:post]; 

NSDate *dates = [datepick date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateStyle = NSDateFormatterMediumStyle; 
NSString *datetime = [dateFormatter stringFromDate:dates]; 

if (datetime > theDate) 
{ 
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Please select current date or past date" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
} 
else if(datetime <= theDate) 
{ 
    date_array = [[NSMutableArray alloc]init]; 
    date.text = datetime; 
    [date_array addObject:datetime]; 
} 
[dateFormat release]; 
[dateFormatter release]; 

請幫助ASAP.Thanks。

回答

1

您可以比較NSDate與 - [NSDate比較:]。所以,試試這個:

if ([dates compare:post] == NSOrderedDescending) { 
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Healthcare" message:@"Please select current date or past date" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
    [alert show]; 
    [alert release]; 
} 
else { 
    ... 
} 
+0

謝謝你的邏輯中選擇日期之正是我想要的。 –

0

您可以設置UIDatePicker實例的minimumDatemaximumDate屬性,用戶將沒有選擇,而是從這些邊界:)