これまで日付、Dateの比較ってすごく面倒だし、わかりにくかったです。
Swift
let today : Date = Date()
let yesterday: Date = Date(timeIntervalSinceNow:-60*60*24)
if today.compare(yesterday) == ComparisonResult.orderedDescending {
print("今日は昨日よりも未来") // 実行される
}
正直、orderedDescending
とかorderedAscending
ってどっちがどっちだっけ…といつも迷っていました。
ですが、Swift3から新しく追加されたDate
型であれば、比較演算子で比較ができるのです。
本当に嬉しい。
Swift
let now : Date = Date()
let yesterday: Date = Date(timeIntervalSinceNow: -60*60*24)
let tomorrow: Date = Date(timeIntervalSinceNow: 60*60*24)
let anotherNow : Date = Date()
let otherNow : Date = now
if tomorrow > now {
print("tomorrowはnowよりも未来") // 実行される
}
if tomorrow != now {
print("tomorrowとnowは違う日") // 実行される
}
if yesterday > now {
print("yesterdayはnowよりも未来") // 実行されない
}
if yesterday < now {
print("yesterdayはnowよりも過去") // 実行される
}
if now == anotherNow {
print("nowとanotherNowは同じ") // 実行されない
}
if now == otherNow {
print("nowとotherNowは同じ") // 実行される
}
if now <= anotherNow {
print("nowはanotherNowよりもちょっとだけ未来") // 実行される
}
上記でnow
とanotherNow
は同じように見えますが、anotherNow
がnow
よりも後に実行されています。
この数行のコード間の数ミクロン秒の差があるので、now
とanotherNow
は同じではないということですね。
あぁ、嬉しい。
(今更かよ!って思われるかもしれませんが、、、)