Reputation: 283
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?
Upvotes: 15
Views: 17973
Reputation: 12206
Swift 3
let isToday = Calendar.current.isDateInToday(yourDate)
You can then check the value and proceed accordingly with simply:
if isToday {
//If true, do this
}
There are similar functions for tomorrow, weekend, and a few others, for example:
let isTomorrow = Calendar.current.isDateInTomorrow(yourDate)
This guide has them all in Objective-C and Swift:
Upvotes: 4
Reputation: 480
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:
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.
Upvotes: 41
Reputation: 14886
Check our Erica Sadun's great NSDate
extension
class: http://github.com/erica/NSDate-Extensions
There are lots of date comparisons, among them exactly what you need :)
Upvotes: 33