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

1 Answer

0 votes
use chrono::{Datelike, Local, NaiveDate};

// ---------------------------------------------------------
// Function: days_until_christmas
// Purpose : Calculate how many days remain until Christmas.
// ---------------------------------------------------------
fn days_until_christmas() -> i64 {
    // Get today's date from the system
    let today = Local::now().date_naive();

    // Extract the current year
    let year = today.year();

    // Build a date for Christmas of the current year
    // December = month 12
    let mut christmas = NaiveDate::from_ymd_opt(year, 12, 25).unwrap();

    // If Christmas already passed this year, calculate for next year
    if today > christmas {
        christmas = NaiveDate::from_ymd_opt(year + 1, 12, 25).unwrap();
    }

    // Calculate difference in days between today and Christmas
    let diff = christmas - today;
    diff.num_days()
}

fn main() {
    let days = days_until_christmas();
    
    println!("Days until Christmas: {}", days);
}



/*
run:

Days until Christmas: 210

*/

 



answered May 29 by avibootz
...