当我试图从现在到年底获得日期差异时,我的月份为0。我正在使用NSCalendar
对象来区分两个NSDate
对象。
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:2013];
[comps setMonth:0];
[comps setDay:0];
[comps setHour:0];
[comps setMinute:0];
[comps setSecond:0];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *newDate = [calendar dateFromComponents:comps];
NSDateComponents *timeDifference = [[NSCalendar currentCalendar]
components: NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit |
NSMinuteCalendarUnit | NSSecondCalendarUnit
fromDate:[NSDate date] toDate:newDate options:0];
int months = timeDifference.month;
int days = timeDifference.day;
if (months>0)
days+=31;
int hours = timeDifference.hour;
int minutes = timeDifference.minute;
int seconds = timeDifference.second;
答案 0 :(得分:0)
您正在尝试计算到2013年的月数,天数等。在NSDateComponents
0表示“无值”,所有计数值应该大于0.这就是您{{1}的原因}值被视为'不完整',这会导致comps
的奇怪输出。
在第3-4行中设置NSCalendar
和month
可以解决问题。