1const fn cumsum_cal(input: &[u8; 12]) -> [u32; 13] {
2 let mut out: [u32; 13] = [0; 13];
3 let mut i = 1;
4 while i < 13 {
5 out[i] = out[i - 1] + input[i - 1] as u32;
6 i += 1;
7 }
8 out
9}
10
11pub const DAYS_PER_MONTH: [u8; 12] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
13pub const DAYS_PER_MONTH_LEAP: [u8; 12] = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
14pub const DAYS_PER_MONTH_360: [u8; 12] = [30; 12];
15
16pub const DAYS_PER_YEAR_LEAP: i64 = 366;
18pub const DAYS_PER_YEAR_NON_LEAP: i64 = 365;
19pub const SECONDS_PER_YEAR_LEAP: i64 = DAYS_PER_YEAR_LEAP * SECS_PER_DAY as i64;
20pub const SECONDS_PER_YEAR_NON_LEAP: i64 = DAYS_PER_YEAR_NON_LEAP * SECS_PER_DAY as i64;
21
22pub const CUM_DAYS_PER_MONTH: [u32; 13] = cumsum_cal(&DAYS_PER_MONTH);
24pub const CUM_DAYS_PER_MONTH_LEAP: [u32; 13] = cumsum_cal(&DAYS_PER_MONTH_LEAP);
25pub const CUM_DAYS_PER_MONTH_360: [u32; 13] = cumsum_cal(&DAYS_PER_MONTH_360);
26
27pub const UNIX_DEFAULT_YEAR: i64 = 1970;
29pub const UNIX_DEFAULT_MONTH: u8 = 1;
30pub const UNIX_DEFAULT_DAY: u8 = 1;
31
32pub const SECS_PER_HOUR: u32 = 3600;
34pub const SECS_PER_MINUTE: u32 = 60;
35pub const SECS_PER_DAY: u32 = 24 * SECS_PER_HOUR;
36
37pub const MONTHS: [&str; 12] = [
38 "January",
39 "February",
40 "March",
41 "April",
42 "May",
43 "June",
44 "July",
45 "August",
46 "September",
47 "October",
48 "November",
49 "December",
50];
51
52pub const MAX_NS: i64 = 1_000_000_000;