Saya baru mengenal Swift dan sedang mencoba penjadwal. Saya telah memilih waktu mulai dan saya perlu menambahkan 5 menit (atau kelipatannya) ke waktu mulai dan menampilkannya dalam 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
tidak diragukan lagi lebih berkinerja (meskipun kemungkinan tidak material kecuali Anda melakukan ini jutaan kali). Namun, yang lebih penting adalah jika Anda berbicara tentang satuan ukuran dalam beberapa hari (atau lebih lama), maka rendisi kalender lebih disukai karena akan melakukan semua penyesuaian penghematan siang hari untuk Anda.Anda dapat menggunakan metode Kalender
untuk menambahkan apapun
Calendar.Component
ke apapunDate
. Anda dapat membuat ekstensi Tanggal untuk menambahkan x menit keUIDatePicker
tanggal Anda:Xcode 8 dan Xcode 9 • Swift 3.0 dan Swift 4.0
Kemudian Anda cukup menggunakan metode ekstensi untuk menambahkan menit ke pengirim (UIDatePicker):
Pengujian tempat bermain:
sumber
.date(byAdding:value:to)
kembalinil
? Apakah kita aman untuk membuka paksa di sini?Cepat 4 :
// tambahkan 5 menit sampai saat ini
// kurangi 5 menit dari tanggal
Swift 5.1:
sumber
Anda dapat melakukan aritmatika tanggal dengan menggunakan
NSDateComponents
. Sebagai contoh:Itulah yang Anda lihat saat mencobanya di taman bermain
sumber
NSDate.init
dengantimeIntervalSinceNow
:Mis:
sumber
Simpan ekstensi kecil ini:
Kemudian gunakan secara intuitif seperti:
sumber
self.days * 30
dan tahun:self.days * 365
. Ini tidak sempurna karena satu tahun bisa terdiri dari 366 hari, dan bulan bisa berbeda dari 30 hari, tetapi masih lebih baik dari 28/336.Anda dapat menggunakan dengan cepat 4 atau 5
keluaran:
sumber
Cepat 3:
sumber
Jika Anda ingin stempel waktu unix
sumber
Saya pikir yang paling sederhana adalah
sumber