How do I add 1 day to an NSDate? How do I add 1 day to an NSDate? objective-c objective-c

How do I add 1 day to an NSDate?


Swift 5.0 :

var dayComponent    = DateComponents()dayComponent.day    = 1 // For removing one day (yesterday): -1let theCalendar     = Calendar.currentlet nextDate        = theCalendar.date(byAdding: dayComponent, to: Date())print("nextDate : \(nextDate)")

Objective C :

NSDateComponents *dayComponent = [[NSDateComponents alloc] init];dayComponent.day = 1;NSCalendar *theCalendar = [NSCalendar currentCalendar];NSDate *nextDate = [theCalendar dateByAddingComponents:dayComponent toDate:[NSDate date] options:0];NSLog(@"nextDate: %@ ...", nextDate);

This should be self-explanatory.


Since iOS 8 you can use NSCalendar.dateByAddingUnit

Example in Swift 1.x:

let today = NSDate()let tomorrow = NSCalendar.currentCalendar()    .dateByAddingUnit(         .CalendarUnitDay,          value: 1,          toDate: today,          options: NSCalendarOptions(0)    )

Swift 2.0:

let today = NSDate()let tomorrow = NSCalendar.currentCalendar()    .dateByAddingUnit(        .Day,         value: 1,         toDate: today,         options: []    )

Swift 3.0:

let today = Date()let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: today)


Updated for Swift 5

let today = Date()let nextDate = Calendar.current.date(byAdding: .day, value: 1, to: today)

Objective C

 NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; // now build a NSDate object for the next day NSDateComponents *offsetComponents = [[NSDateComponents alloc] init]; [offsetComponents setDay:1]; NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate: [NSDate date] options:0];