一尘不染

如何快速增加分钟到当前时间

swift

我是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*

阅读 305

收藏
2020-07-07

共1个答案

一尘不染

两种方法:

  1. 使用Calendardate(byAdding:to:wrappingComponents:)。例如,在Swift 3和更高版本中:

    let calendar = Calendar.current
    

    let date = calendar.date(byAdding: .minute, value: 5, to: startDate)

  2. 只需使用+运算符(请参阅+(_:_:))添加一个TimeInterval(即一定的秒数)。例如增加五分钟,您可以:

    let date = startDate + 5 * 60
    

(请注意,顺序在这里是特定的:日期在的左侧+,秒在右侧。)

addingTimeInterval如果您愿意,也可以使用:

    let date = startDate.addingTimeInterval(5 * 60)

底线+/
addingTimeInterval最适合简单的情况,但是,如果您想添加较大的单位(例如,天,月等),则可能需要使用日历计算,因为这些调整是针对夏令时进行的,而addingTimeInterval不会。


2020-07-07