Проверьте, указан ли c дата сегодня (или прошло) Swift - PullRequest
0 голосов
/ 07 марта 2020

через dateformatter, как я могу написать функцию, чтобы узнать, прошла или нет указанная дата c сегодня?

пример: 8 марта 2020

Дата ()

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

спасибо

1 Ответ

2 голосов
/ 07 марта 2020

Вы можете сделать:

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

Этот метод в основном возвращает Date с указанным годом, месяцем и днем с компонентами часа, минуты и секунды, равными 0, то есть начало указанного дня. Другими словами, я проверяю, наступил ли момент после начала дня 2020-03-28.

...