Swift 检查两个日期之间的日期会得到错误的结果
我想检查一个日期是否介于两个日期之间,但我的代码的结果给了我错误的结果。你能和我核对一下吗。谢谢你的帮助! 这是我的密码Swift 检查两个日期之间的日期会得到错误的结果,swift,Swift,我想检查一个日期是否介于两个日期之间,但我的代码的结果给了我错误的结果。你能和我核对一下吗。谢谢你的帮助! 这是我的密码 extension Date{ func isBetweenDates(beginDate: Date, endDate: Date) -> Bool { if self.compare(beginDate) == .orderedAscending { return false } if self.compare(en
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,在Swift中,
日期
是可比较的
这意味着您可以使用此代码比较两个日期
date1 < date2
date1
您正在使用的比较函数是来自Objective或来自Objective的旧函数。我想你是在一本老教程上找到的吧
不管怎样,只要做点像
return date1 < self && self < date2
返回日期1
在你的职责范围内
如果
self
介于date1
和date2
之间,则返回true。嘿,福格迈斯特!谢谢你的回复,我测试了你的代码,结果是:result0:false,result1:false,result2:false,result3:false,但是第一个结果必须是truechangedd-MM-yyyyy
到dd-MM-yyyyy
顺便说一句,你也可以使用带有日期的模式匹配操作符func-isBetween(开始:日期,结束:日期)->Bool{返回开始…结束~=self}