我正在使用Swift 2.1来构建一个设置重复提醒的应用。这主要由两部分组成:
我使用CVCalendarKit来操纵某些日期单位,所以第2部分(每次增加X小时)并不是我遇到的麻烦。
我想弄清楚的是,如果有一个简单的方法来创建NSDate
的实例并使用最快的某个时间实例。
所以,假设今天是2016年2月13日,
NSDate
创建的应为2016-02-13 09:00:00
NSDate
创建的应为2016-02-14 09:00:00
非常感谢提前。
答案 0 :(得分:3)
您可以使用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 +
答案 1 :(得分:0)
注意夏令时的变化。
很快就会有一天失踪一小时。在这种情况下,您(或您的用户)必须做出两个决定:1。如果您感兴趣的日期不存在会怎样? (例如,英国一年中有一天“第二天凌晨2:30”不存在)。 2.“每六个小时”是什么意思?在一年中的某一天,“21:00后6小时”是第二天的“04:00”。