找出一个NSDate是否是今天,昨天,明天
在iOS SDK中,我需要find一个简单而安全的方法来查看NSDate是否在今天,昨天,明天。 我正在寻找的是这样的伪代码:
NSDate *myDate = someDate; if ([myDate isTomorrow]) { NSLog("Tomorrow"); }
你将如何解决?
检查我们的Erica Sadun的伟大的NSDate
extension
类: http : //github.com/erica/NSDate-Extensions
有很多date比较,其中正是你需要:)
我明白,这是相当古老的,但我想把答案更新(因为我没有看到其他人发布更新的答案)。
自iOS8.0以来,您可以使用一堆function进行date比较:
- compareDate:TODATE:toUnitGranularity:
- 而isDate:equalToDate:toUnitGranularity:
- 而isDate:inSameDayAsDate:
- isDateInToday:
- isDateInTomorrow:
- isDateInWeekend:
- isDateInYesterday:
看下面的例子:
NSDate *today = [NSDate new]; NSCalendar* calendar = [NSCalendar currentCalendar]; BOOL isToday = [calendar isDateInToday:today]; BOOL isYesterday = [calendar isDateInYesterday:today];
isToday将是YES。
是昨天将是否,因为我们给它今天的date。
请参阅Apple的文档以进一步阅读。
Swift 3
let isToday = Calendar.current.isDateInToday(yourDate)
然后,您可以检查该值并相应地执行以下操作:
if isToday { //If true, do this }
例如,对于明天,周末和其他一些function也有类似的function:
let isTomorrow = Calendar.current.isDateInTomorrow(yourDate)
这个指南在Objective-C和Swift中都有它们: