Swift:最快日期的某个时间的下一个实例

问题描述:

我正在使用Swift 2.1来构建一个设置重复提醒的应用程序。这主要包括两个部分:Swift:最快日期的某个时间的下一个实例

  1. 用户可以选择一个时间,提醒必须开始(如09:00)
  2. ,用户可以选择将它重复每X小时(例如,如果它的六个小时,则提醒将在09:00

我使用CVCalendarKit操纵特定日期单位设定,15:00,21:00,03:00),所以第2部分(添加每次X小时)不是我遇到的麻烦。

我想知道的是,如果有一种简单的方法来创建一个NSDate实例与一个特定时间的最快实例。

因此,假设今天是2016年2月13日,

  • 如果它是8:59,创造应该是2016-02-13 09:00:00
  • 如果它是9:01的NSDate,创造应该是NSDate2016-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) 

,在iOS 8+或OS X 10.9+这只能

+0

谢谢!它的作品:) –

当心日光的变化节省时间。

很快就会有一天失去一个小时。在这种情况下,您(或您的用户)必须做出两项决定:1.如果您感兴趣的日期不存在,会发生什么? (例如,英国将在今年的某一天不存在“第二天凌晨2点30分”)。 2.“每六小时”是什么意思?在一年中的某一天,“21:00后6小时”是第二天的“04:00”。

+1

这可能应该是一个评论。这里没有真正的答案。 – tktsubota

+0

谢谢你的抬头。 :)我一定会考虑到这一点。 –