gpt4 book ai didi

ios - 结束约会的好方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:55:42 25 4
gpt4 key购买 nike

我在数据库中查询 startDate 和 endDate 之间的值。因此,我正在寻找一种巧妙的方法来获取日期结束时的 NSDate。就像您可以获得 startOfDayForDate() 一样。

我想你可以这样做:

let cal = NSCalendar.currentCalendar()
let startOfDay = cal.startOfDayForDate(NSDate())
let aDay:NSTimeInterval = 60*60*23 + 60*59 + 59
let endofDay = startOfDay.dateByAddingTimeInterval(aDay)

将 component.day + 1 添加到 startOfDayForDate 是获取日期“一天结束”的正确方法,还是有更好的方法?

最佳答案

更好的方法是获得第二天的开始,并减去0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001 secone,

你明白我想说的吗?很难定义一天的结束。 23:59当然不是一天的结束,距离第二天还有差不多整整一分钟。甚至 23:59:59 也不是一天的结束。因为在这个时间和第二天开始之间有无限多的小数秒。据我所知,NSDate 开箱即用地支持纳秒,因此在当前的实现中,在 23:59:59 和第二天之间至少有 1 000 000 000 个可能的 NSDate。

这就是为什么您应该看看是否可以找到一种使用第二天开始的方法。

例如,而不是 if (startOfDay <= date && date <= endOfDay)你可以使用 if (startOfDay <= date && date < startOfNextDay) .

要计算第二天的开始时间,您必须使用 NSCalendar。在 iOS8 中,Apple 添加了一些不错的方法来简化这些计算:

let calendar = NSCalendar.currentCalendar()
let startOfDay = calendar.startOfDayForDate(NSDate())
let startOfNextDay = calendar.dateByAddingUnit(.CalendarUnitDay, value: 1, toDate: startOfDay, options: nil)!

编辑:由于您现在声明要查询数据库,因此您不需要查找当天的结束时间。检查日期是否在当天开始之前或之后,以及第二天开始之前。

关于ios - 结束约会的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29035835/

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