0Pricing
Swift Academy · Lektion

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

  1. Der Typ Date und Zeitintervalle
  2. Calendar und DateComponents
  3. Datumsformatierung
  4. Zeitzonen und Locales
← Zurück zu Swift Academy