use chrono::{Datelike, Local, NaiveDate};
fn add_months_to_date(months: i32, date: NaiveDate) -> NaiveDate {
let mut new_month = date.month() as i32 + months;
let mut new_year = date.year();
while new_month > 12 {
new_month -= 12;
new_year += 1;
}
NaiveDate::from_ymd_opt(new_year, new_month as u32, date.day()).unwrap_or_else(|| NaiveDate::from_ymd_opt(new_year, new_month as u32, 28).unwrap())
}
fn main() {
let today = Local::now().date_naive();
let future_date = add_months_to_date(6, today);
println!("Date six months from now: {}", future_date);
}
/*
run:
Date six months from now: 2025-12-12
*/