2012-10-19 6 views
0

안녕하세요 저는 아래의 코드를 사용하고 있지만 null 값인 startDate 및 endDate를 얻고 있습니다. 어느 하나라도 도와주세요날짜 선택 도구를 사용하여 두 날짜를 비교하십시오

-(NSString *)datecomparison:(NSString *)STARTDATE forEndDate:(NSString *)ENDDATE{ 
    NSLog(@"startDate:%@ endDate:%@",STARTDATE,ENDDATE); 
    NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
    [df setDateFormat:@"dd-MM-yyyy"]; 
    [df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 
    NSDate *dt1 = [[NSDate alloc] init]; 
    NSDate *dt2 = [[NSDate alloc] init]; 
    dt1 = [df dateFromString:@"12/05/12"]; 
    dt2 = [df dateFromString:@"13/05/12"]; 
    NSLog(@"startDate:%@ endDate:%@",dt1,dt2); 
    NSComparisonResult result = [dt1 compare:dt2]; 
    NSString *dateReturn = [[NSString alloc] init]; 
    switch (result) 
    { 
     case NSOrderedAscending: NSLog(@"%@ is greater than %@", dt2, dt1); 
      dateReturn = @"ascending"; 
      break; 
     case NSOrderedDescending: NSLog(@"%@ is less %@", dt2, dt1); 
      break; 
     case NSOrderedSame: NSLog(@"%@ is equal to %@", dt2, dt1); 
      [email protected]"ascending"; 

      break; 
     default: NSLog(@"erorr dates %@, %@", dt2, dt1); break; 
    } 
    return dateReturn; 
} 
+0

dateformate 문자열 및 제공된 날짜보기 place - 대신/dateFromString의 두 날짜에서 문제가 해결 될 수 있습니다. –

답변

0

두 날짜 모두에서 연, 월, 일을 구하여 비교할 수 있습니다.

NSString *str = [dt1 description]; 
const char* szDate = [str UTF8String]; 
int nYear, nMonth, nDay, nHour, nMinite, nSecond, nDeltaHour, nDeltaMinite; 
sscanf(szDate, "%04d-%02d-%02d %d:%02d:%02d +%02d%02d", &nYear, &nMonth, &nDay, &nHour, &nMinite, &nSecond, &nDeltaHour, &nDeltaMinite); 
관련 문제