我是Swift的新手,正在尝试调度程序。我已经选择了开始时间,我需要在开始时间上加上5分钟(或它的倍数)并将其显示在UILabel中吗?
@IBAction func timePickerClicked(sender: UIDatePicker) { var dateFormatter = NSDateFormatter() dateFormatter.timeStyle = NSDateFormatterStyle.ShortStyle var dateStr = dateFormatter.stringFromDate(startTime.date) let sttime = dateStr startTimeDisplay.text = dateStr } // How to advance time by 5 minutes for each section based on the start time selected and display time // section 1 = start time + 5 // section 2 = start time + 10*
两种方法:
使用Calendar和date(byAdding:to:wrappingComponents:)。例如,在Swift 3和更高版本中:
Calendar
date(byAdding:to:wrappingComponents:)
let calendar = Calendar.current
let date = calendar.date(byAdding: .minute, value: 5, to: startDate)
只需使用+运算符(请参阅+(_:_:))添加一个TimeInterval(即一定的秒数)。例如增加五分钟,您可以:
+
+(_:_:)
TimeInterval
let date = startDate + 5 * 60
(请注意,顺序在这里是特定的:日期在的左侧+,秒在右侧。)
addingTimeInterval如果您愿意,也可以使用:
addingTimeInterval
let date = startDate.addingTimeInterval(5 * 60)
底线+/ addingTimeInterval最适合简单的情况,但是,如果您想添加较大的单位(例如,天,月等),则可能需要使用日历计算,因为这些调整是针对夏令时进行的,而addingTimeInterval不会。