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,710 questions

55,474 answers

573 users

How to compute the day of the week for January 1st of any given year in Swift

1 Answer

0 votes
import Foundation

/*
    This program determines the day of the week for January 1st of a given year.

    Approach:
    ---------
    Swift provides built‑in date/time handling through:
        - DateComponents(year:, month:, day:) : constructs a calendar date
        - Calendar.current.date(from:)        : builds a Date object
        - Calendar.current.component(.weekday, from:) : returns weekday number (1..7)

    Weekday values (Swift / iOS convention):
        1 = Sunday
        2 = Monday
        3 = Tuesday
        4 = Wednesday
        5 = Thursday
        6 = Friday
        7 = Saturday

    This avoids manual calendar arithmetic and uses efficient built‑in routines.
*/

// Convert numeric weekday (1..7) to readable weekday name
func weekdayName(_ weekday: Int) -> String {
    let names: [String] = [
        "Sunday", "Monday", "Tuesday", "Wednesday",
        "Thursday", "Friday", "Saturday"
    ]
    
    return names[weekday - 1]   // Convert 1-based to 0-based index
}

// Compute weekday of January 1st for a given year
func jan1Weekday(year: Int) -> String {
    let components = DateComponents(year: year, month: 1, day: 1)
    let calendar = Calendar.current

    // Build the date safely
    guard let dateValue = calendar.date(from: components) else {
        return "Invalid date"
    }

    // Extract weekday number (1..7)
    let weekdayNum: Int = calendar.component(.weekday, from: dateValue)

    return weekdayName(weekdayNum)
}

let year: Int = 2026

let result: String = jan1Weekday(year: year)
print("January 1st, \(year) falls on a \(result).")


/*
run:

January 1st, 2026 falls on a Thursday.

*/

 



answered Jul 11 by avibootz

Related questions

...