2012-10-19 50 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

查看日期格式字符串和您提供的日期地點 - 而不是/在兩個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);