February 23, 2017

改めて、SwiftのDateの比較について

Categories: 技術 | Tags: #Swift #Date


しっかり考えれば当たり前のことなんですけど、頭の中からすっぽり抜けていたので書き留めておきます。

改めて。Dateは直接比較できる

(自分が)ついついやってしまうのですが、2つの Date を比較するときに

date1.timeIntervalSince1970 > date.timeIntervalSince1970

と、TimeInterval(Double)で比較してしまうのですが、よく考えると DateComparable , Equatable に適合しているので、

date1 > date2
date1 == date2

と比較することができます。

Rangeにもできる

DateRange も作ることができるので、

past <= current && current < future

みたいな比較の仕方も、

(past..<future) ~= current

と、Rangeを使って判定することもできます。
(upperとlowerが逆になるとクラッシュしますが…)


written by sgr-ksmt