Beräkna ett datum i framtiden eller förflutenheten

Swift:
Beräkna ett datum i framtiden eller förflutenheten

Så här gör du:

import Foundation

// Nuvarande datum
let currentDate = Date()

// Datumformaterare för output
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"

// Beräkna framtida datum (5 dagar framåt)
var dateComponent = DateComponents()
dateComponent.day = 5
if let futureDate = Calendar.current.date(byAdding: dateComponent, to: currentDate) {
    print("Framtida datum: \(dateFormatter.string(from: futureDate))")
}

// Beräkna förflutet datum (10 dagar bakåt)
dateComponent.day = -10
if let pastDate = Calendar.current.date(byAdding: dateComponent, to: currentDate) {
    print("Förflutet datum: \(dateFormatter.string(from: pastDate))")
}

Sample Output:

Framtida datum: 2023-04-10
Förflutet datum: 2023-03-26

Djupdykning

I början av dataprogrammering var datumhantering ett komplext problem på grund av olika tidszoner och datumformat. Swift använder Date och Calendar för att hantera detta, göra det enklare för utvecklare att jobba med datum. Alternativ inkluderar tredjepartsbibliotek som DateTools och SwiftDate, men Foundation-ramverket täcker de flesta behoven. Att räkna ut datum handlar mycket om att förstå DateComponents och Calendar-klasserna, där man definierar vilka komponenter (år, månad, dag etc.) man vill lägga till eller ta bort för att nå önskat datum. Noggrannhet är viktig för att hantera skottår och andra komplexiteter.

Se även

  • Apple Developer Documentation for Date
  • Apple Developer Documentation for Calendar