2009-11-26 36 views
0

我使用下面的代码来获得正确....几个月它data..but它给 2个月当我从两个日期得到......想如果我举两个日期像janauary至3月, 它会返回正确的获得2个月〜我怎样才能改变无天正好(包括2月)...将月份更改为确切天数?

NSCalendar *sysCalendar = [NSCalendar currentCalendar]; 


unsigned int unitFlags = NSSecondCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit; 

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

NSLog(@"Break down: %dmons", [breakdownInfo month]); 

回答

1

你可以使用NSDateComponents,但你可以通过每个日期的一个时间间隔的差异简单地计算天。 NSTimeInterval是计数的秒数浮点数。

#define kSecondsInDay 86400 

int numberOfDays = [date2 timeIntervalSinceDate:date1]/kSecondsInDay; 
0

通过仅指定创建日期组件时NSDayCalendarUnit标志,你会得到天为结果的数[breakdownInfo day]

+0

它给出错误放出来......一个月返回2 ..但天只返回13后,我实现了自己的方式......牛逼 – 2009-11-26 07:48:17

+0

我认为你正在做的事情错接。如果您只设置日单位,则只有日期字段将包含有效值。其他领域只是随机的,所以你不能使用它们。当我刚刚设置的天单位,比较二天相隔一个月是,我得到例如30日字段。 – Rhult 2009-11-26 07:57:22