How to calculate the number of days until Christmas from today in Swift

1 Answer

0 votes
import Foundation

// ---------------------------------------------------------
// Function: daysUntilChristmas
// Purpose : Calculate how many days remain until Christmas.
// ---------------------------------------------------------
func daysUntilChristmas() -> Int {
    // Get today's date from the system
    let today = Date()
    let calendar = Calendar.current

    // Extract the current year
    let year = calendar.component(.year, from: today)

    // Build a date for Christmas of the current year
    // December = month 12
    var christmasComponents = DateComponents(year: year, month: 12, day: 25)
    var christmas = calendar.date(from: christmasComponents)!

    // If Christmas already passed this year, calculate for next year
    if today > christmas {
        christmasComponents.year = year + 1
        christmas = calendar.date(from: christmasComponents)!
    }

    // Calculate difference in days between today and Christmas
    let diff = calendar.dateComponents([.day], from: today, to: christmas)

    return diff.day ?? 0
}

let days = daysUntilChristmas()

print("Days until Christmas: \(days)")



/*
run:

Days until Christmas: 209

*/

 



answered May 29 by avibootz
...