我正在为IOS创建一个闹钟应用程序。长话短说,我已将DatePicker配置为仅显示小时和分钟。
我的问题是,当用户输入上午6:00时,我希望它是第二天早上,Xcode现在假设它是同一天。
EX:用户在周三晚上10点睡觉,并在周四早上6点设置闹钟。我的应用程序假设上午6:00是为了周三。我该如何解决这个问题?
答案 0 :(得分:0)
获得下一次出现时间的最可靠方法是nextDate(after:matching:matchingPolicy:
Calendar
,因为它还会考虑夏令时的变化。
假设datePicker
是NSDatePicker
个实例:
let date = datePicker.date
let calendar = Calendar.current
// get hour and minute components of the given date
let components = calendar.dateComponents([.hour, .minute], from: date)
// calculate the next occurrence of the date components from now
let nextOccurrence = calendar.nextDate(after: Date(), matching: components, matchingPolicy: .nextTime)
答案 1 :(得分:0)
我喜欢亲自使用AFDateHelper图书馆。
import AFDateHelper
let tomorrowDate = dateFromPicker.adjust(.day, offset: 1)