Calcul d'une date future ou passée

Swift:
Calcul d'une date future ou passée

How to:

Swift offre DateComponents et Calendar pour manipuler les dates. Voici un exemple simple:

import Foundation

// Aujourd'hui
let today = Date()

// Le calendrier actuel
let calendar = Calendar.current

// Ajouter 5 jours
if let fiveDaysLater = calendar.date(byAdding: .day, value: 5, to: today) {
    print("Dans 5 jours : \(fiveDaysLater)")
}

// Soustraire 30 minutes
if let thirtyMinutesBefore = calendar.date(byAdding: .minute, value: -30, to: today) {
    print("Il y a 30 minutes : \(thirtyMinutesBefore)")
}

Sample output:

Dans 5 jours : 2023-04-15 14:23:44 +0000
Il y a 30 minutes : 2023-04-10 13:53:44 +0000

Deep Dive

Historiquement, gérer le temps en programmation a toujours été délicat, surtout avec les fuseaux horaires et les changements d’heure. Avant DateComponents, on manipulait les secondes directement, risqué et imprécis. Swift simplifie avec Calendar, permettant des calculs clairs et précis.

Alternatives? On pourrait utiliser des bibliothèques tierces comme SwiftDate, mais Foundation de Swift est souvent suffisant et bien intégré.

Détails d’implémentation: Calendar donne le contexte temporel (fuseaux, changements d’heure) et DateComponents les éléments à ajouter ou soustraire (jours, minutes). Le système gère le reste, y compris les irrégularités comme les années bissextiles.

See Also