我正在通過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