指定の日数を移動したNSDateを取得する
dateByAddingTimeIntervalを利用します。
- (id)dateByAddingTimeInterval:(NSTimeInterval)seconds; e.g. 前後の日付を取得 #define DAY_INTERVAL (60*60*24) NSDate* nextDay = [[NSDate date] dateByAddingTimeInterval:DAY_INTERVAL*1]]; NSDate* lastDay = [[NSDate date] dateByAddingTimeInterval:DAY_INTERVAL*-1]];
NSDateオブジェクトに対して秒を加算したNSDateオブジェクトを返します。
計算がしやすいように、適当なdefineオブジェクトを作っておくのが良いと思います。
これを利用してNSDateオブジェクトを移動させた上で、例えば
NSCalendar* cal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents* components = [cal components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:nextDay]; int year = [components year]; int month = [components month]; int day = [components day]; [cal release];
こんな感じで、移動した先の日付を数値で取得することが出来ます。