【问题标题】:checking a date between two dates gives wrong result [duplicate]检查两个日期之间的日期会给出错误的结果[重复]
【发布时间】:2019-11-16 21:33:52
【问题描述】:

我想检查一个日期是否在两个日期之间,但我的代码结果给了我错误的结果,你能和我核对一下吗?谢谢您的帮助! 这是我的代码

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


    【解决方案1】:

    在 Swift 中,Date 具有可比性。

    这意味着您可以使用此代码比较两个日期...

    date1 < date2
    

    您使用的比较函数是来自或来自 ObjectiveC 的旧函数。我想你是在旧教程之类的东西上找到的?

    不管怎样,做一些类似...

    return date1 < self && self < date2
    

    在你的函数中。

    如果self 介于date1date2 之间,则返回true。

    【讨论】:

    • 嗨雾迷!感谢您的回复,我测试了您的代码,输出为:result0:false, result1:false, result2:false, result3:false 但第一个结果必须为 true
    • dd-MM-YYYY更改为dd-MM-yyyy
    • 顺便说一句,您也可以使用模式匹配运算符和日期func isBetween(start: Date, end: Date) -&gt; Bool { return start...end ~= self }
    猜你喜欢
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    相关资源
    最近更新 更多