Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find out if an NSDate is today, yesterday, tomorrow

Tags:

ios

iphone

nsdate

With the iOS SDK I need to find an easy and secure way to see if an NSDate is today, yesterday, tomorrow. What I'm looking for is something like this in pseudo code:

NSDate *myDate = someDate;
if ([myDate isTomorrow]) {
    NSLog("Tomorrow"); 
}

How would you solve it?

like image 782
mrrmatinsi Avatar asked Oct 29 '10 14:10

mrrmatinsi


1 Answers

I understand that this is pretty old, but I want to bring the answer up to date (as I didn't see anyone else post a more up to date answer).

Since iOS 8.0 you have a bunch of functions that you can use for date comparison:

  • compareDate:toDate:toUnitGranularity:
  • isDate:equalToDate:toUnitGranularity:
  • isDate:inSameDayAsDate:
  • isDateInToday:
  • isDateInTomorrow:
  • isDateInWeekend:
  • isDateInYesterday:

See below example:

NSDate *today = [NSDate new];
NSCalendar* calendar = [NSCalendar currentCalendar];

BOOL isToday = [calendar isDateInToday:today];
BOOL isYesterday = [calendar isDateInYesterday:today];

isToday will be YES.

isYesterday will be NO, given that we gave it todays date.

See Apple's Documentation for further reading.

like image 183
Mark Avatar answered Oct 13 '22 01:10

Mark