How do I Increment an NSDate object in Objective-C

cocoa, datetimeoffset, objective-c

Solution

As you have found, what you have now is pretty error-prone. Not only can it trip up over a daylight savings change, but also what if your user has a non-gregorian calendar? Then, days are not 24 hours long.

Instead, use `NSCalendar` and `NSDateComponents` which were exactly designed for this:

+ (NSDate *)getForDays:(int)days fromDate:(NSDate *)date
{
    NSDateComponents *components= [[NSDateComponents alloc] init];
    [components setDay:days];

    NSCalendar *calendar = [NSCalendar currentCalendar];
    return [calendar dateByAddingComponents:components toDate:date options:0];
}

Problem

I want to take the next day by giving the current date The code i used as follows ``` +(NSDate *)getForDays:(int)days fromDate:(NSDate *) date { NSTimeInterval secondsPerDay = 24 * 60 * 60 * days; return [date addTimeInterval:secondsPerDay]; } ``` this works fine but when the daylight saving enabled this leads to errors. How can I make this work when daylight saving is enabled.

Original source