How to calculate the date six months from the current date in Rust

1 Answer

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

 



answered Jun 12, 2025 by avibootz
...