2011-11-09 3 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 s와 - [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 속성을 설정할 수 있으며, 사용자는 선택의 여지가 없을 것이다, 그러나 그 경계 :) 논리에 대한

관련 문제