Я новичок в 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*
addingTimeInterval
, Несомненно , более производительный (хотя , вероятно , не материал , если вы делаете это миллионы раз). Что еще более важно, если вы говорите об единицах измерения в днях (или дольше), тогда предпочтительнее календарное представление, потому что оно будет выполнять все корректировки перехода на летнее время за вас.Вы можете использовать метод календаря
добавить любой
Calendar.Component
к любомуDate
. Вы можете создать расширение даты, чтобы добавить x минут к вашейUIDatePicker
дате:Xcode 8 и Xcode 9 • Swift 3.0 и Swift 4.0
Затем вы можете просто использовать метод расширения, чтобы добавить минуты отправителю (UIDatePicker):
Тестирование детской площадки:
источник
.date(byAdding:value:to)
возвращаетсяnil
? Можно ли здесь принудительно развернуть упаковку?Swift 4 :
// добавляем 5 минут к дате
// вычитаем 5 минут из даты
Swift 5.1:
источник
Вы можете выполнять арифметические операции с датами, используя
NSDateComponents
. Например:Это то, что вы видите, когда пробуете его на детской площадке
источник
NSDate.init
сtimeIntervalSinceNow
:Ex:
источник
Сохраните это небольшое расширение:
Затем используйте его интуитивно, например:
источник
self.days * 30
и годы:self.days * 365
. Это не идеально, потому что в году может быть 366 дней, а месяц может отличаться от 30 дней, но все же лучше, чем 28/336.Вы можете использовать в быстрых 4 или 5
вывод:
источник
Swift 3:
источник
Если вам нужна временная метка unix
источник
Думаю, самое простое будет
источник