How to add some time to an NSDate

- by

Imagine you had an NSDate object and want to add days several to it. We can use NSDate method dateByAddingComponents for this, which takes – as you may have guessed – NSDateComponents as parameters.

In this example, let’s assume we want to know what date it is 5 days from today:

int daysToAdd = 5;
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc]init];
[components setDay:daysToAdd];
NSDate *futureDate = [gregorian dateByAddingComponents:components toDate:today options:0];

You can add as many and diverse components you like, such as

  • setEra:
  • setYear:
  • setMonth:
  • setDay:
  • setHour:
  • setMinute:
  • setSecond:
  • setWeek:
  • setWeekday:
  • setWeekdayOrdinal:
  • setQuarter:
  • setCalendar:
  • setTimeZone:
  • setWeekOfMonth:
  • setWeekOfYear:
  • setYearForWeekOfYear:

Check out the NSDateComponents Class Reference for more information.



If you enjoy my content, please consider supporting me on Ko-fi. In return you can browse this whole site witout any pesky ads! More details here.

Add your voice!

This site uses Akismet to reduce spam. Learn how your comment data is processed.