pub use std::time::{SystemTime,UNIX_EPOCH}; pub use libstardit::libstardit::unix_to_stardit; fn main() { let current_timestamp = SystemTime::now() .duration_since(UNIX_EPOCH) .unwrap() .as_secs_f64(); let stardit = unix_to_stardit(current_timestamp); let day_stop: u16 = match is_leap_year(stardit.year as i32) { false => 365, true => 366, }; print!("déc "); for day_number_wkd in 0..10 { let day_name = unix_to_stardit((day_number_wkd as f64 * 86400.0) + 864000.0).day_name; let day_name_abbr = match day_name.char_indices().nth(3) { None => day_name, Some((idx, _)) => day_name[..idx].to_string(), }; if day_number_wkd == stardit.day % 10 { print!("\x1b[1m{}\x1b[0m ", day_name_abbr); } else { print!("{} ", day_name_abbr) } } print!("\n 0 "); let mut day_i: u16 = 1; while day_i <= day_stop { if day_i % 10 == 0 { print!("\n"); if day_i / 10 == stardit.day / 10 { print!("\x1b[1m{}\x1b[0m ", format!("{: >3}", day_i / 10)); } else { print!("{} ", format!("{: >3}", day_i / 10)); } } if day_i == stardit.day { print!("\x1b[7m{}\x1b[0m ", format!("{: >3}", day_i)); } else { print!("{} ", format!("{: >3}", day_i)); } day_i += 1; } print!("\n"); } fn is_leap_year(year: i32) -> bool { return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) }