Coverage / src/cli/format.rs 100.0%
16 of 16 lines run, 2 of 2 functions · run #32 on main · run missed
| 1 | |
|
| 2 | |
|
| 3 | 4× | pub fn when(ms: u64) -> String { |
| 4 | 4× | let secs = (ms / 1000) as i64; |
| 5 | 4× | let days = secs.div_euclid(86_400); |
| 6 | 4× | let rem = secs.rem_euclid(86_400); |
| 7 | | |
| 8 | 4× | let z = days + 719_468; |
| 9 | 4× | let era = z.div_euclid(146_097); |
| 10 | 4× | let doe = z - era * 146_097; |
| 11 | 4× | let yoe = (doe - doe / 1460 + doe / 36_524 - doe / 146_096) / 365; |
| 12 | 4× | let y = yoe + era * 400; |
| 13 | 4× | let doy = doe - (365 * yoe + yoe / 4 - yoe / 100); |
| 14 | 4× | let mp = (5 * doy + 2) / 153; |
| 15 | 4× | let d = doy - (153 * mp + 2) / 5 + 1; |
| 16 | 4× | let m = if mp < 10 { mp + 3 } else { mp - 9 }; |
| 17 | 4× | let y = if m <= 2 { y + 1 } else { y }; |
| 18 | 4× | format!("{y:04}-{m:02}-{d:02} {:02}:{:02}:{:02}Z", rem / 3600, (rem % 3600) / 60, rem % 60) |
| 19 | 4× | } |