2016-02-13 24 views
2

我正在使用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

非常感謝提前。

回答

3

你,如果你沒有使用開源斯威夫特基礎庫可以使用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

謝謝!它的作品:) –

0

當心日光的變化節省時間。

很快就會有一天失去一個小時。在這種情況下,您(或您的用戶)必須做出兩項決定:1.如果您感興趣的日期不存在,會發生什麼? (例如,英國將在今年的某一天不存在「第二天凌晨2點30分」)。 2.「每六小時」是什麼意思?在一年中的某一天,「21:00後6小時」是第二天的「04:00」。

+1

這可能應該是一個評論。這裏沒有真正的答案。 – tktsubota

+0

謝謝你的擡頭。 :)我一定會考慮到這一點。 –

相關問題