2017-07-23 203 views
-5

我正在为IOS创建闹钟应用程序。长话短说,我已经配置DatePicker只显示小时和分钟。添加1日至日期

我的问题是,当用户输入6:00 AM时,我希望它是在第二天早上,Xcode现在假设它是同一天。

EX:用户在周三晚上10点睡觉,并在周四早上6点设置闹钟。我的应用程序假设早上6点是指星期三。我怎样才能解决这个问题?

+0

你到目前为止做了哪些研究?你写了什么代码?此问题包含解决问题所需的所有信息(例如:创建日期组件以在当天添加1):https://stackoverflow.com/q/24089999/558933 –

回答

0

获得下一次出现时间的最可靠的方法是的Calendar,因为它也考虑夏令时更改。

假设datePickerNSDatePicker实例:

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) 
0

我喜欢用AFDateHelper库个人。

import AFDateHelper 

let tomorrowDate = dateFromPicker.adjust(.day, offset: 1)