func whenToLeave() -> Date { ... }
let when = whenToLeave().addingTimeInterval(-5.0 * 60.0)
// Comparableʹ४ڌ͍ͯ͠ΔͨΊ
if Date() < when {
// Կؾʹselectorແ͠Ͱهड़Ͱ͖ΔΑ͏ʹͳ͍ͬͯΔTimer
timer = Timer(fireDate: when, interval: 0, repeats: false) {
print("Almost time to go!")
}
RunLoop.main.add(timer, forMode: .commonModes)
}