如何比较两个日期,返回几天

Dan*_*ans 22 compare objective-c days

我怎样才能比较两个日期的返回天数.例如:缺少X天的杯赛.看看我的代码.

  NSDateFormatter *df = [[NSDateFormatter alloc]init];  
  [df setDateFormat:@"d MMMM,yyyy"];  
  NSDate *date1 = [df dateFromString:@"11-05-2010"];  
  NSDate *date2 = [df dateFromString:@"11-06-2010"];  
  NSTimeInterval interval = [date2 timeIntervalSinceDate:date1];  
  //int days = (int)interval / 30;  
  //int months = (interval - (months/30)) / 30;  
  NSString *timeDiff = [NSString stringWithFormat:@"%dMissing%d days of the Cup",date1,date2, fabs(interval)];  

  label.text = timeDiff; // output (Missing X days of the Cup)  
Run Code Online (Sandbox Code Playgroud)

dar*_*elf 35

Apple的例子来看,基本上使用NSCalendar:

NSDate * date1 = <however you initialize this>;
NSDate * date2 = <...>;

NSCalendar *gregorian = [[NSCalendar alloc]
                 initWithCalendarIdentifier:NSGregorianCalendar];

NSUInteger unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;

NSDateComponents *components = [gregorian components:unitFlags
                                          fromDate:date1
                                          toDate:date2 options:0];

NSInteger months = [components month];
NSInteger days = [components day];
Run Code Online (Sandbox Code Playgroud)