gpt4 book ai didi

ios - 在日期 Swift 2 的比较中订购相同不返回结果

转载 作者:搜寻专家 更新时间:2023-10-31 22:34:04 25 4
gpt4 key购买 nike

当我运行它时,当我使用 OrderedDescending 或 OrderedAscending 而不是 OrderedSame 时,我会得到一个结果,即使新年的日期是相同的。

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "mm/dd/yyyy"

let christmas = dateFormatter.dateFromString("12/25/2015")

let newyear = dateFormatter.dateFromString("11/29/2015")

let update = dateFormatter.dateFromString("02/01/2016")

let date2 = NSDate()

if date2.compare(newyear!) == NSComparisonResult.OrderedSame {

let alertController = UIAlertController(title: "", message:
"Happy New Year. ", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default,handler: nil))

self.presentViewController(alertController, animated: true, completion: nil)

}

if date2.compare(christmas!) == NSComparisonResult.OrderedDescending {

let alertController = UIAlertController(title: "", message:
"Merry Christmas.", preferredStyle: UIAlertControllerStyle.Alert)
alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default,handler: nil))

self.presentViewController(alertController, animated: true, completion: nil)

}De

最佳答案

您的第一个问题是日期格式。您需要“MM/dd/yyyy”。此外,NSDate() 返回当前日期(包括时间),因此它与不包括给定时间的格式“MM/dd/yyyy”中的日期不完全相同,即使一年中的这一天是一样的。所以你应该使用NSCalendar的单位粒度.Day的日期比较函数,而不是NSDate的比较函数。

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"

let newyear = dateFormatter.dateFromString("11/29/2015")
let date2 = NSDate() // Currently 11/29/2015

let order = NSCalendar.currentCalendar().compareDate(newyear!, toDate: date2,
toUnitGranularity: .Day)

if order == NSComparisonResult.OrderedSame {
print("same")
}

关于ios - 在日期 Swift 2 的比较中订购相同不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33985014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com