检查具体日期是否为今天(或已过)Swift

Check if specific date isToday (or passed) Swift

通过 dateformatter,我如何编写一个函数来知道特定日期是已经过去还是今天?

示例:2020 年 3 月 8 日

日期()

    if Date() >= 28March2020 {
      return true
    } else {
      return false
    } 

谢谢

你可以这样做:

if Date() >= Calendar.current.dateWith(year: 2020, month: 3, day: 28) ?? Date.distantFuture {
    return true
} else {
    return false
}

其中 dateWith(year:month:day:) 定义为:

extension Calendar {
    func dateWith(year: Int, month: Int, day: Int) -> Date? {
        var dateComponents = DateComponents()
        dateComponents.year = year
        dateComponents.month = month
        dateComponents.day = day
        return date(from: dateComponents)
    }
}

该方法基本returnsDate指定年月日,时分秒分量全部为0,即指定日的开始.换句话说,我正在检查现在是否是在 2020-03-28 日开始之后。