Calendar und DateComponents
Führen Sie Datumsberechnungen über verschiedene Kalender hinweg durch.
Calendar und DateComponents ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Calendar und DateComponents
Ein Calendar interpretiert einen Date-Wert in menschliche Einheiten wie Jahr, Monat und Tag. DateComponents enthält diese aufgeschlüsselten Werte.
Der aktuelle Calendar
Calendar.current berücksichtigt die Einstellungen des Benutzers. Er bildet die Verbindung zwischen rohen Date-Zeitpunkten und benannten Feldern.
import Foundation
let cal = Calendar.current
print("Calendar identifier: \(cal.identifier)")Komponenten extrahieren
dateComponents(_:from:) liest die angeforderten Felder aus einem Datumswert in einen DateComponents-Wert aus.
import Foundation
let cal = Calendar.current
let comps = cal.dateComponents([.year, .month, .day], from: Date())
print("Year is set: \(comps.year != nil)")Ein einzelnes Feld auslesen
Die Kurzform component(_:from:) gibt ein einzelnes Feld direkt als Int zurück.
import Foundation
let cal = Calendar.current
let weekday = cal.component(.weekday, from: Date())
print("Weekday number between 1 and 7: \(1...7 ~= weekday)")Einen Datumswert aus Komponenten erstellen
Füllen Sie einen DateComponents-Wert aus und lassen Sie den Calendar mit date(from:) den passenden Date-Wert erstellen.
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)")
}Datumsarithmetik
date(byAdding:to:) addiert sicher eine Komponentenmenge und berücksichtigt dabei Monatslängen und Schaltjahre für Sie.
import Foundation
let cal = Calendar.current
let now = Date()
if let nextWeek = cal.date(byAdding: .day, value: 7, to: now) {
print(nextWeek > now)
}Mehrere Einheiten addieren
Sie können mehrere Einheiten gleichzeitig addieren, indem Sie einen DateComponents-Wert übergeben, der die Verschiebung beschreibt.
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())
}Unterschiede zwischen Datumswerten
Führen Sie die Operation umgekehrt aus: dateComponents(_:from:to:) gibt die verstrichenen Einheiten zwischen zwei Datumswerten zurück.
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)")Tagesbeginn
startOfDay(for:) gibt Mitternacht des Datums im Calendar zurück und eignet sich beispielsweise zum Gruppieren von Ereignissen nach Tagen.
import Foundation
let cal = Calendar.current
let midnight = cal.startOfDay(for: Date())
print(midnight <= Date())Prüfen, ob derselbe Tag vorliegt
isDate(_:inSameDayAs:) teilt Ihnen mit, ob zwei Datumswerte auf denselben Kalendertag fallen.
import Foundation
let cal = Calendar.current
let now = Date()
let soon = now.addingTimeInterval(60)
print(cal.isDate(now, inSameDayAs: soon))Warum Calendar verwenden
Arithmetik mit reinen Sekunden ist bei Zeitumstellungen und Monatsgrenzen falsch. Verwenden Sie für Berechnungen mit Tagen, Monaten und Jahren immer Calendar.
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())")
}Kurze Überprüfung
Welche Methode addiert korrekt einen Monat zu einem Datumswert?
Zusammenfassung
Calendar konvertiert mithilfe von DateComponents zwischen Date-Werten und benannten Feldern. Sie haben Felder extrahiert, Datumswerte erstellt, mit date(byAdding:) Einheiten addiert und Unterschiede berechnet. Außerdem haben Sie gesehen, warum Kalenderarithmetik besser ist als Berechnungen mit reinen Sekunden. Als Nächstes geht es um die Formatierung von Datumswerten für die Anzeige.
Häufig gestellte Fragen
Ist die Lektion „Calendar und DateComponents“ kostenlos?
Ja — der vollständige Text von „Calendar und DateComponents“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Calendar und DateComponents“?
Führen Sie Datumsberechnungen über verschiedene Kalender hinweg durch. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Swift Academy zu starten?
Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Calendar und DateComponents“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?
Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Der Typ Date und Zeitintervalle
- Calendar und DateComponents
- Datumsformatierung
- Zeitzonen und Locales