2011-11-09 21 views
0

私は問題を抱えています。以下の問題を参照して解決してください。2つの日付を比較して将来の日付を選択するユーザーを制限しますか?

私は(日付、月、年)を表示している日付ピッカーを持っています。ユーザーが前の日付を選択すると、例えば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]; 

できるだけ早くお手伝いします。

答えて

1

NSDateと[ - NSDate compare:]を比較できます。だから、これを試してみてください。

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プロパティを設定することができ、ユーザーは選択肢がないでしょうが、それらの境界内から日付を選択すること:)

関連する問題