Swift ≧ 3
Swift 3 makes this a lot easier.
let fallsBetween = (startDate ... endDate).contains(Date())
Now that NSDate
is bridged to the value type Date
and Date
conforms to Comparable
we can just form a ClosedRange<Date>
and use the contains
method to see if the current date is included.
Caveat: endDate
must be greater or equal startDate
. Otherwise the range could not be formed and the code would crash with a fatalError
.
This is safe:
extension Date {
func isBetween(_ date1: Date, and date2: Date) -> Bool {
return (min(date1, date2) ... max(date1, date2)).contains(self)
}
}