Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 检查两个日期之间的日期会得到错误的结果_Swift - Fatal编程技术网

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,但是第一个结果必须是truechange
dd-MM-yyyyy
dd-MM-yyyyy
顺便说一句,你也可以使用带有日期的模式匹配操作符
func-isBetween(开始:日期,结束:日期)->Bool{返回开始…结束~=self}