use chrono::prelude::*; use std::iter::FromIterator; fn main() { let dates: Vec = (2000..=2999) .map(|y| { let ys = y.to_string(); let revchars: Vec = ys.chars().rev().collect(); let m = String::from_iter(&revchars[0..2]).parse::().unwrap(); let d = String::from_iter(&revchars[2..4]).parse::().unwrap(); chrono::Utc.ymd_opt(y, m, d) }) .flat_map(|date| date.earliest()) .map(|date| format!("{}", date.format("%m%d%Y"))) .collect(); println!("{:?}", dates); }