Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,709 questions

55,473 answers

573 users

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
...