我正在使用 Swift 2.1 构建一个可设置重复提醒的应用程序。这主要由两部分组成:
- 用户可以选择提醒必须开始的时间(例如 09:00)
- 用户可以选择每隔 X 小时重复一次(例如,如果是六个小时,则提醒将设置在 09:00、15:00、21:00、03:00)
我正在使用 CVCalendarKit操纵某些日期单位,所以第 2 部分(每次增加 X 小时)不是我遇到的麻烦。
我想弄清楚的是,是否有一种简单的方法可以用特定时间的最快实例创建 NSDate
的实例。
所以,假设今天是 2016 年 2 月 13 日,
- 如果是 8:59,则创建的
NSDate
应该是2016-02-13 09:00:00
- 如果是 9:01,则创建的
NSDate
应该是2016-02-14 09:00:00
非常感谢。
最佳答案
您可以使用 NSCalendar.nextDateAfterDate()
let calendar = NSCalendar.currentCalendar()
let now = NSDate()
let nextTime = calendar.nextDateAfterDate(now,
matchingHour: 9,
minute: 0,
second: 0,
options: NSCalendarOptions.MatchNextTime)
如果您不使用开源 Swift Foundation 库,这仅适用于 iOS 8+ 或 OS X 10.9+
关于Swift:最快日期的特定时间的下一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35380563/