【问题标题】:Xcode How to calculate the number of month between two datesXcode如何计算两个日期之间的月数
【发布时间】:2011-06-25 14:58:46
【问题描述】:
我想计算自上次启动应用以来的月份数。
为此,我将viewdidload 到NSUserdefaults 的当前日期保存为字符串。
在我保存当前日期之前,我必须计算旧(保存)日期和当前日期之间的月差。
我是使用 NSDates 编程的新手,有人可以告诉我该怎么做吗?以及如何在标签中打印计数?
希望你明白我的意思,也希望有人可以帮助我......
问候丹尼斯
【问题讨论】:
标签:
xcode
compare
nsdate
nsdateformatter
【解决方案1】:
首选方式是使用NSCalendar。
-(int)differenceInMonthsFrom:(NSDate*)older to:(NSDate*)younger {
NSCalendar *calendar=[NSCalendar currentCalendar];
NSDateComponents *components=[calendar components:NSMonthCalendarUnit fromDate:older toDate:younger options:0];
return [components month];
}
请注意,此函数不检查排序。从您存储的字符串到 NSDate 可能是一个技巧;将日期存储为整数可能更明智?
【解决方案2】:
你必须使用NSDate 对象。例如:
NSDate *now=[NSDate date]; // this is **now** date object
NSDate *lastSaved=[NSdate lastDate]; // this is last saved object
NSComparisonResult duration=[now timeIntervalSinceDate:lastSaved]; //this will return time interval between this 2 date object in seconds
hoursInterval=duration/3600; // this will return hours of interval between this 2 date
daysInterval=hoursInterval/24; // this will return days interval between this 2 date
monthsInterval=daysInterval/30; // and this will return month interval between this 2 date