2つの日付の差を取得する方法

2つの日付は、NSCalendarのcomponents:fromDate:toDate:options:メソッドを使えば簡単に計算することができます。なお、日付の足し算に関しては以前書いた日付の計算にのっています。

```// 本日の日付を取得する。
NSDate *today = [NSDate date];

NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comp = [[[NSDateComponents alloc] init] autorelease];
[comp setDay:10];
[comp setMonth:1];

// 本日から10日と1月分動かした日付を取得する。
NSDate *future = [cal dateByAddingComponents:comp toDate:today options:0];

// 日付の差分を、日を基準にして取得する。
NSDateComponents *def1 = [cal components:NSDayCalendarUnit fromDate:today toDate:future options:0];
NSLog(@"days: %d", [def1 day]); // days: 40

// 日付の差分を、日と月を基準にして取得する。
NSDateComponents *def2 = [cal components:NSDayCalendarUnit|NSMonthCalendarUnit fromDate:today toDate:future options:0];
NSLog(@"days: %d", [def2 day]); // days: 10
NSLog(@"months: %d", [def2 month]); // months: 1
```

この記事が役に立った場合、シェアしていただけると励みになります!!