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
- Type Date et intervalles de temps
- Calendrier et DateComponents
- Formatage des dates
- Fuseaux horaires et paramètres régionaux