我想检查一个日期是否在两个日期之间,但是我的代码结果给我错误的结果,请您检查一下。谢谢您的帮助! 这是我的代码
extension Date{
func isBetweenDates(beginDate: Date, endDate: Date) -> Bool
{
if self.compare(beginDate) == .orderedAscending
{
return false
}
if self.compare(endDate) == .orderedDescending
{
return false
}
return true
}
}
override func viewDidLoad() {
let result0 = "08-01-2019".date(format: "dd-MM-YYYY")!.isBetweenDates(beginDate: "01-01-2019".date(format: "dd-MM-YYYY")!, endDate: "09-01-2019".date(format: "dd-MM-YYYY")!)
let result1 = "04-01-2019".date(format: "dd-MM-YYYY")!.isBetweenDates(beginDate: "06-01-2019".date(format: "dd-MM-YYYY")!, endDate: "08-01-2019".date(format: "dd-MM-YYYY")!)
let result2 = "05-01-2019".date(format: "dd-MM-YYYY")!.isBetweenDates(beginDate: "01-01-2019".date(format: "dd-MM-YYYY")!, endDate: "04-01-2019".date(format: "dd-MM-YYYY")!)
let result3 = "06-01-2018".date(format: "dd-MM-YYYY")!.isBetweenDates(beginDate: "01-01-2019".date(format: "dd-MM-YYYY")!, endDate: "08-01-2019".date(format: "dd-MM-YYYY")!)
}
并输出:result0 = true,result1 = true,result2 = true,result3 = false,或者它们应该是result0 = true,result1 = false,result2 = false,result3 = false,
答案 0 :(得分:1)
在Swift中,Date
是可比的。
这意味着您可以使用此代码比较两个日期...
date1 < date2
您正在使用的比较功能是来自ObjectiveC的旧功能。我想您是在旧教程中找到的?
无论如何,只要做类似...
return date1 < self && self < date2
在您的职务上。
如果self
在date1
和date2
之间,则返回true。