Find out if an NSDate is today, yesterday, tomorrow

前端 未结 3 1572
北恋
北恋 2020-12-31 05:47

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:

<
相关标签:
3条回答
  • 2020-12-31 06:02

    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.

    0 讨论(0)
  • 2020-12-31 06:09

    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 :)

    0 讨论(0)
  • 2020-12-31 06:18

    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:

    0 讨论(0)
提交回复
热议问题