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
*/