extern crate chrono; pub mod libstardit { use chrono::{TimeZone, Datelike, LocalResult}; pub struct StarDIT { pub year: u16, pub weekade: u16, pub day_name: String, pub day: u16 } pub fn unix_to_stardit(unix: f64) -> StarDIT { let date = match chrono::Utc.timestamp_millis_opt(((unix as i64) - 12*3600) * 1000) { LocalResult::Single(date) => date, _ => panic!("Incorrect timestamp_millis"), }; let day = date.ordinal() as u16; return StarDIT { year: (date.year() + 10000) as u16, weekade: day / 10, day_name: match day % 10 { 0 => "zéridi", 1 => "unidi", 2 => "duodi", 3 => "tridi", 4 => "quartidi", 5 => "quintidi", 6 => "sextidi", 7 => "septidi", 8 => "octidi", 9 => "nonidi", _ => "?", }.to_string(), day: day, }; } }