0Pricing
Swift Academy · Leçon

Calendrier et DateComponents

Effectuez des calculs de dates entre différents calendriers.

Calendrier et DateComponents est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.

Calendar et DateComponents

Un Calendar interprète une Date en unités compréhensibles, comme l’année, le mois et le jour. DateComponents contient ces valeurs séparées.

Le calendrier actuel

Calendar.current reflète les réglages de l’utilisateur. Il fait le lien entre les instants bruts de type Date et les champs nommés.

import Foundation

let cal = Calendar.current
print("Calendar identifier: \(cal.identifier)")

Extraire les composants

dateComponents(_:from:) extrait les champs demandés d’une date et les place dans une valeur DateComponents.

import Foundation

let cal = Calendar.current
let comps = cal.dateComponents([.year, .month, .day], from: Date())
print("Year is set: \(comps.year != nil)")

Lire un seul champ

La méthode abrégée component(_:from:) renvoie directement un champ sous forme d’Int.

import Foundation

let cal = Calendar.current
let weekday = cal.component(.weekday, from: Date())
print("Weekday number between 1 and 7: \(1...7 ~= weekday)")

Créer une date à partir de composants

Remplissez un DateComponents, puis demandez au calendrier de produire la Date correspondante avec 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)")
}

Arithmétique des dates

date(byAdding:to:) ajoute une quantité d’une unité en toute sécurité, en gérant pour vous la longueur des mois et les années bissextiles.

import Foundation

let cal = Calendar.current
let now = Date()
if let nextWeek = cal.date(byAdding: .day, value: 7, to: now) {
    print(nextWeek > now)
}

Ajouter plusieurs unités

Vous pouvez ajouter plusieurs unités à la fois en transmettant un DateComponents qui décrit le décalage.

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())
}

Différences entre les dates

Effectuez l’opération inverse : dateComponents(_:from:to:) renvoie les unités écoulées entre deux dates.

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)")

Début de la journée

startOfDay(for:) renvoie minuit à la date indiquée dans le calendrier, ce qui est pratique pour regrouper les événements par jour.

import Foundation

let cal = Calendar.current
let midnight = cal.startOfDay(for: Date())
print(midnight <= Date())

Vérifier le même jour

isDate(_:inSameDayAs:) indique si deux dates correspondent au même jour du calendrier.

import Foundation

let cal = Calendar.current
let now = Date()
let soon = now.addingTimeInterval(60)
print(cal.isDate(now, inSameDayAs: soon))

Pourquoi utiliser Calendar

Effectuer des calculs en ajoutant un nombre brut de secondes donne des résultats incorrects lors du passage à l’heure d’été ou entre les mois. Utilisez toujours Calendar pour les calculs sur les jours, les mois et les années.

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())")
}

Vérification rapide

Quelle méthode ajoute correctement un mois à une date ?

Récapitulatif

Calendar convertit une Date en champs nommés, et inversement, par l’intermédiaire de DateComponents. Vous avez extrait des champs, créé des dates, ajouté des unités avec date(byAdding:), calculé des différences et compris pourquoi les calculs du calendrier sont préférables à l’arithmétique brute des secondes. Ensuite : formater les dates pour les afficher.

Questions Fréquemment Posées

La leçon « Calendrier et DateComponents » est-elle gratuite ?

Oui — le texte complet de « Calendrier et DateComponents » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Calendrier et DateComponents » ?

Effectuez des calculs de dates entre différents calendriers. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Swift Academy ?

Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Calendrier et DateComponents » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?

Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Type Date et intervalles de temps
  2. Calendrier et DateComponents
  3. Formatage des dates
  4. Fuseaux horaires et paramètres régionaux
← Retour à Swift Academy