指定の日数を移動した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];


こんな感じで、移動した先の日付を数値で取得することが出来ます。