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];