日付の判定 過去/未来/今

SwiftのDate型には素晴らしい判定処理用のメソッドとemunが用意されています。

毎回どれがどれだか忘れてしまうのでまとめます。

ComparisonResult

ComparisonResultというenumで今か未来か過去かを判定することができます。どれがどれかはコメントの記載通りです。

public enum ComparisonResult : Int {

    //未来
    case orderedAscending
    //今
    case orderedSame
    //過去
    case orderedDescending
}

使ってみる

let past = Date(timeIntervalSinceNow: -100)

let now = Date()

let future = Date(timeIntervalSinceNow: 100)

if now.compare(future)  == .orderedAscending {
    print("今は未来より過去")
}

if now.compare(now) == .orderedSame {
    print("今と今は同じ時間")
}

if now.compare(past) == .orderedDescending {
    print("今は過去より未来")
}

参考文献

Swift3で日付(Date)の比較が超簡単になっていた件

前の記事

IntとDateの相互変換