use crate::{Real, TSpan};
pub(crate) const SEC_PER_YEAR: i128 = 31_557_600; pub(crate) const SEC_PER_MONTH: i128 = 2_629_800; pub(crate) const SEC_PER_DAY: i128 = 86_400;
pub const SEC_PER_DAY_F: Real = 86_400.0;
pub const SEC_PER_DAYI64: i64 = 86_400;
pub(crate) const SEC_PER_DAYI128: i128 = 86_400;
pub(crate) const SEC_PER_WEEK: i64 = 7 * SEC_PER_DAYI64;
pub(crate) const ATTOS_PER_WEEK: i128 = SEC_PER_WEEK as i128 * ATTOS_PER_SEC_I128;
pub const ATTOS_PER_DAY: i128 = SEC_PER_DAYI128 * ATTOS_PER_SEC_I128;
pub const ATTOS_PER_HALF_DAY: i128 = ATTOS_PER_DAY / 2;
pub const ATTOS_PER_HALF_DAYU: u128 = ATTOS_PER_HALF_DAY as u128;
pub const GM_SUN: Real = 1.3271244e20;
pub const C: Real = 299792458.0;
pub const C_SQUARED: Real = C * C;
pub const GM_SUN_OVER_C3: Real = GM_SUN / (C * C_SQUARED);
pub const TWO_GM_SUN_OVER_C3: Real = 2.0 * GM_SUN_OVER_C3;
pub const ATTOS_PER_SEC: u64 = 1_000_000_000_000_000_000;
pub const ATTOS_PER_SECF: Real = f!(1_000_000_000_000_000_000.0);
pub const ATTOS_PER_SEC_I128: i128 = ATTOS_PER_SEC as i128;
pub const ATTOS_PER_SEC_U128: u128 = ATTOS_PER_SEC as u128;
pub const ATTOS_PER_MS: u64 = 1_000_000_000_000_000;
pub const ATTOS_PER_US: u64 = 1_000_000_000_000;
pub const ATTOS_PER_NS: u64 = 1_000_000_000;
pub const ATTOS_PER_PS: u64 = 1_000_000;
pub const ATTOS_PER_FS: u64 = 1_000;
pub const ATTOS_PER_MS_I128: i128 = ATTOS_PER_MS as i128;
pub const ATTOS_PER_US_I128: i128 = ATTOS_PER_US as i128;
pub const ATTOS_PER_NS_I128: i128 = ATTOS_PER_NS as i128;
pub const ATTOS_PER_PS_I128: i128 = ATTOS_PER_PS as i128;
pub const ATTOS_PER_FS_I128: i128 = ATTOS_PER_FS as i128;
pub(crate) const TT_TAI_OFFSET_SEC: i64 = 32;
pub(crate) const TT_TAI_OFFSET_SUBSEC: u64 = 184_000_000_000_000_000;
pub const TT_TAI_OFFSET_SPAN: TSpan = TSpan::new(TT_TAI_OFFSET_SEC, TT_TAI_OFFSET_SUBSEC);
pub(crate) const J2000_SEC_PER_CENTURY: Real = 3_155_760_000.0;
pub const J2000_JD_TT: i64 = 2_451_545;
pub const MJD_1970: i64 = 40_587;
pub const TAI_SEC_AT_1972: i64 = -883_655_990;
pub(crate) const UNIX_EPOCH_TO_J2000_NOON_UTC: i64 = 946_728_000;
pub(crate) const FS_PER_SEC: i128 = 1_000_000_000_000_000;
pub(crate) const PS_PER_SEC: i128 = 1_000_000_000_000;
pub(crate) const NS_PER_SEC: i128 = 1_000_000_000;
pub(crate) const US_PER_SEC: i128 = 1_000_000;
pub(crate) const MS_PER_SEC: i128 = 1_000;
pub(crate) const JD_EPOCH_DAYS: i128 = 2_440_587;
pub const PLANCK_LENGTH: Real = 1.616255e-35; pub const PLANCK_LENGTH_4: Real = PLANCK_LENGTH * PLANCK_LENGTH * PLANCK_LENGTH * PLANCK_LENGTH;
pub(crate) const LG_NUM: i128 = 6_969_290_134;
pub(crate) const LG_DEN: i128 = 10_000_000_000_000_000_000;
pub(crate) const LB_NUM: i128 = 1_550_519_768;
pub(crate) const LB_DEN: i128 = 100_000_000_000_000_000;
pub(crate) const TCG_TCB_REF_JD_INT: i64 = 2_443_144;
pub(crate) const TCG_TCB_REF_TOD_SEC: i64 = 43_232; pub(crate) const TCG_TCB_REF_TOD_SUBSEC: u64 = TT_TAI_OFFSET_SUBSEC;
pub(crate) const TDB0_ATTOS: i128 = -65_500_000_000_000;
pub(crate) const LM_NUM: i128 = 648_378;
pub(crate) const LM_DEN: i128 = 1_000_000_000_000_000;
pub const MARS_SOL_LENGTH_SEC: Real = 88775.244;
pub(crate) const MARS_MSD_REF_JD_INT: i64 = 2_405_522;
pub(crate) const MARS_MSD_REF_TOD_SEC: i64 = 248;
pub(crate) const MARS_MSD_REF_TOD_SUBSEC: u64 = 650_560_000_000_000_000;
pub const MARS_SOL_ATTOS: i128 = 88_775_244_000_000_000_000_000;
pub(crate) const MARS_REF_TT: TSpan = TSpan::new(-3_976_386_952, 650_560_000_000_000_000);
pub(crate) const WEEKDAYS_FULL: [&[u8]; 7] = [
b"Sunday",
b"Monday",
b"Tuesday",
b"Wednesday",
b"Thursday",
b"Friday",
b"Saturday",
];
pub(crate) const WEEKDAYS_ABBR: [&[u8]; 7] =
[b"Sun", b"Mon", b"Tue", b"Wed", b"Thu", b"Fri", b"Sat"];
pub(crate) const MONTHS_FULL: [&[u8]; 12] = [
b"January",
b"February",
b"March",
b"April",
b"May",
b"June",
b"July",
b"August",
b"September",
b"October",
b"November",
b"December",
];
pub(crate) const MONTHS_ABBR: [&[u8]; 12] = [
b"Jan", b"Feb", b"Mar", b"Apr", b"May", b"Jun", b"Jul", b"Aug", b"Sep", b"Oct", b"Nov", b"Dec",
];
pub const STRFTIME_SIZE: usize = 512;