Xcode如何计算两个日期之间的月数

时间:2011-06-25 14:58:46

标签: xcode compare nsdate nsdateformatter

我想计算自上次应用启动以来的月数。

为此,我将当前日期保存为viewdidloadNSUserdefaults字符串。

在保存当前日期之前,我必须计算旧(已保存)日期与当前日期之间的月差异。

我是NSDates编程的新手,有人能告诉我怎么做吗?以及如何在标签中打印计数?

希望你理解我的意思,也有人可以帮助我...

问丹尼斯

2 个答案:

答案 0 :(得分:0)

首选方法是使用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可能是一个技巧;将日期存储为整数可能更明智吗?

答案 1 :(得分:0)

你必须使用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