我正在通过Objective-C编程中的一项挑战,大书呆子牧场指南,而且我受到挑战中的一个困惑。如何计算Objective-C中两个日期之间的差异?
使用NSDate的两个实例计算出您活着的秒数。提示:这里是你如何从年份,月份等创建一个新的日期对象:
所以我需要现在和我的出生日期之间的差异,以秒为单位。听起来不错。然后提示显示出来:
@autoreleasepool {
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:1981];
[comps setMonth:7];
[comps setDay:12];
[comps setHour:1];
[comps setMinute:55];
[comps setSecond:33];
NSCalendar *g = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *dateOfBirth = [g dateFromComponents:comps];
第一个问题是我不明白是什么*g
是命中注定的。我知道这是一个指向NSCalendar对象的指针。但为什么我们需要它? g
意味着什么?
示例代码然后使用g
变量来获取日期。在另一种语言中,这将像DateDiff(dateOne, dateTwo, interval)
一样简单。我不清楚为什么Calendar对象首先是必需的,为什么我们必须创建日期组件来提供对象。
这对我来说都是新鲜事物,过去我一直使用动态语言。所以一个像“假人”一样的解释会很棒!
[减去2个的NSDate对象]的可能重复(http://stackoverflow.com/questions/6306661/subtracting-two-nsdate-objects) – 2012-08-02 17:04:29
@JamesBlack:这看起来像是重复的差异位,但不是最初的“什么是日历”位。 – 2012-08-02 17:08:52