57 lines
1.3 KiB
Rust
57 lines
1.3 KiB
Rust
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)
|
|
}
|