use chrono::{DateTime, Duration, Utc};

pub fn set_panic_hook() {
    // When the `console_error_panic_hook` feature is enabled, we can call the
    // `set_panic_hook` function at least once during initialization, and then
    // we will get better error messages if our code ever panics.
    //
    // For more details see
    // https://github.com/rustwasm/console_error_panic_hook#readme
    #[cfg(feature = "console_error_panic_hook")]
    console_error_panic_hook::set_once();
}

pub const MILLIS_PER_DAY: u128 = 86_400_000;

pub fn parse_date(julian: u32, millis: u32) -> DateTime<Utc> {
    let unix_time_millis = (julian as u128) * MILLIS_PER_DAY + millis as u128;
    DateTime::UNIX_EPOCH + Duration::milliseconds(unix_time_millis as i64)
}