一尘不染

检查日期是否介于2个日期之间

swift

我有这段代码将字符串转换为日期对象

let date2 = KeysData[indexPath.row]["starttime"] as? String

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

if let date = dateFormatter.dateFromString(date2!) {
   println(date)          
}

我想知道如果当前日期落在2天我的阵列中得到之间startdateendate


阅读 372

收藏
2020-07-07

共1个答案

一尘不染

迅捷2

你已经在你的日期字符串转换的代码KeysDataNSDate。假设您在startdate和中都有两个日期enddate,那么您要做的就是检查当前日期是否在以下日期之间:

let startDate = ...
let endDate = ...

NSDate().isBetween(date: startDate, andDate: endDate)

extension NSDate {
    func isBetweeen(date date1: NSDate, andDate date2: NSDate) -> Bool {
        return date1.compare(self) == self.compare(date2)
    }
}

编辑: 如果要执行 包含 范围检查,请使用以下条件:

 extension NSDate {
    func isBetween(date date1: NSDate, andDate date2: NSDate) -> Bool {
        return date1.compare(self).rawValue * self.compare(date2).rawValue >= 0
    }
}
2020-07-07