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 Rust

1 Answer

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

    Approach:
    ---------
    Rust’s community‑standard chrono crate provides:
        - NaiveDate::from_ymd_opt(year, month, day) : constructs a calendar date safely
        - Datelike::weekday(&self)                  : returns a Weekday enum

    Weekday values:
        Monday, Tuesday, Wednesday, Thursday,
        Friday, Saturday, Sunday

    This avoids manual calendar arithmetic and uses efficient, well‑tested routines.
*/

use chrono::{NaiveDate, Weekday, Datelike};

// Convert Weekday enum to a readable string
fn weekday_name(wd: Weekday) -> &'static str {
    match wd {
        Weekday::Mon => "Monday",
        Weekday::Tue => "Tuesday",
        Weekday::Wed => "Wednesday",
        Weekday::Thu => "Thursday",
        Weekday::Fri => "Friday",
        Weekday::Sat => "Saturday",
        Weekday::Sun => "Sunday",
    }
}

// Compute weekday of January 1st for a given year
fn jan1_weekday(year: i32) -> &'static str {
    // from_ymd_opt returns Option<NaiveDate>; we expect valid input here
    let date_value: NaiveDate =
        NaiveDate::from_ymd_opt(year, 1, 1).expect("Invalid date for given year");

    // Datelike::weekday is a public trait method
    let wd: Weekday = date_value.weekday();

    weekday_name(wd)
}

fn main() {
    let year: i32 = 2026;

    let result: &str = jan1_weekday(year);
    println!("January 1st, {} falls on a {}.", year, result);
}



/*
run:

January 1st, 2026 falls on a Thursday.

*/

 



answered Jul 11 by avibootz

Related questions

...