しっかり考えれば当たり前のことなんですけど、頭の中からすっぽり抜けていたので書き留めておきます。
改めて。Dateは直接比較できる
(自分が)ついついやってしまうのですが、2つの Date を比較するときに
date1.timeIntervalSince1970 > date.timeIntervalSince1970
と、TimeInterval(Double)で比較してしまうのですが、よく考えると Date は Comparable , Equatable に適合しているので、
date1 > date2
date1 == date2
と比較することができます。
Rangeにもできる
Date の Range も作ることができるので、
past <= current && current < future
みたいな比較の仕方も、
(past..<future) ~= current
と、Rangeを使って判定することもできます。
(upperとlowerが逆になるとクラッシュしますが…)