Calendar dan DateComponents
Lakukan aritmetika tanggal lintas kalender.
Calendar dan DateComponents adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.
Calendar dan DateComponents
Sebuah Calendar menafsirkan Date menjadi satuan yang dipahami manusia, seperti tahun, bulan, dan hari. DateComponents menyimpan nilai-nilai yang telah dipisahkan tersebut.
Kalender Saat Ini
Calendar.current mencerminkan pengaturan pengguna. Nilai ini menjadi penghubung antara waktu mentah Date dan bidang-bidang bernama.
import Foundation
let cal = Calendar.current
print("Calendar identifier: \(cal.identifier)")Mengambil Komponen
dateComponents(_:from:) mengambil bidang yang diminta dari suatu tanggal dan memasukkannya ke dalam nilai DateComponents.
import Foundation
let cal = Calendar.current
let comps = cal.dateComponents([.year, .month, .day], from: Date())
print("Year is set: \(comps.year != nil)")Membaca Satu Bidang
Pintasan component(_:from:) mengembalikan satu bidang secara langsung sebagai Int.
import Foundation
let cal = Calendar.current
let weekday = cal.component(.weekday, from: Date())
print("Weekday number between 1 and 7: \(1...7 ~= weekday)")Membuat Tanggal dari Komponen
Isi sebuah DateComponents, lalu minta kalender menghasilkan Date yang sesuai dengan date(from:).
import Foundation
var comps = DateComponents()
comps.year = 2024
comps.month = 12
comps.day = 25
let cal = Calendar.current
if let date = cal.date(from: comps) {
print("Built a date: \(date.timeIntervalSince1970 > 0)")
}Aritmetika Tanggal
date(byAdding:to:) menambahkan jumlah suatu komponen dengan aman dan menangani panjang bulan serta tahun kabisat untuk Anda.
import Foundation
let cal = Calendar.current
let now = Date()
if let nextWeek = cal.date(byAdding: .day, value: 7, to: now) {
print(nextWeek > now)
}Menambahkan Beberapa Satuan
Anda dapat menambahkan beberapa satuan sekaligus dengan meneruskan DateComponents yang menjelaskan pergeseran tersebut.
import Foundation
let cal = Calendar.current
var offset = DateComponents()
offset.month = 1
offset.day = 3
if let future = cal.date(byAdding: offset, to: Date()) {
print(future > Date())
}Perbedaan antara Tanggal
Balikkan operasi tersebut: dateComponents(_:from:to:) mengembalikan satuan waktu yang telah berlalu antara dua tanggal.
import Foundation
let cal = Calendar.current
let now = Date()
let later = now.addingTimeInterval(3 * 86400)
let diff = cal.dateComponents([.day], from: now, to: later)
print("Days apart: \(diff.day ?? -1)")Awal Hari
startOfDay(for:) mengembalikan tengah malam pada tanggal tersebut dalam kalender, yang berguna untuk mengelompokkan peristiwa berdasarkan hari.
import Foundation
let cal = Calendar.current
let midnight = cal.startOfDay(for: Date())
print(midnight <= Date())Memeriksa Hari yang Sama
isDate(_:inSameDayAs:) memberi tahu apakah dua tanggal berada pada hari kalender yang sama.
import Foundation
let cal = Calendar.current
let now = Date()
let soon = now.addingTimeInterval(60)
print(cal.isDate(now, inSameDayAs: soon))Alasan Menggunakan Kalender
Melakukan aritmetika dengan menambahkan detik mentah akan menghasilkan kesalahan saat melewati DST dan batas bulan. Selalu gunakan Calendar untuk perhitungan hari, bulan, dan tahun.
import Foundation
let cal = Calendar.current
// Correct: add 1 month, not 30 * 86400 seconds.
if let d = cal.date(byAdding: .month, value: 1, to: Date()) {
print("Added a month correctly: \(d > Date())")
}Pemeriksaan Singkat
Metode apa yang benar untuk menambahkan satu bulan ke sebuah tanggal?
Ringkasan
Calendar mengonversi antara Date dan bidang-bidang bernama melalui DateComponents. Anda telah mengambil bidang, membuat tanggal, menambahkan satuan dengan date(byAdding:), menghitung perbedaan, dan melihat alasan aritmetika kalender lebih baik daripada perhitungan detik mentah. Berikutnya: memformat tanggal untuk ditampilkan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Calendar dan DateComponents” gratis?
Ya — teks lengkap “Calendar dan DateComponents” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Calendar dan DateComponents”?
Lakukan aritmetika tanggal lintas kalender. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Swift Academy?
Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Calendar dan DateComponents” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Tipe Date dan Interval Waktu
- Calendar dan DateComponents
- Memformat Tanggal
- Zona Waktu dan Lokal