22 lines
776 B
EmacsLisp
22 lines
776 B
EmacsLisp
// mars-calendar.el — MarsCalendar uses sol period 88775.244 seconds.
|
|
// Two instants exactly one sol apart should differ by 1 in sol number.
|
|
|
|
fn run_test() -> Int {
|
|
let cal: Calendar = mars_calendar()
|
|
let base: Instant = unix_seconds(0)
|
|
// 88775.244 s * 1e9 nanos = 88775244000000 nanos
|
|
let one_sol_ns: Int = 88775244000000
|
|
let one_sol: Duration = el_duration_from_nanos(one_sol_ns)
|
|
let later: Instant = base + one_sol
|
|
let ct1: CalendarTime = in_calendar(base, cal)
|
|
let ct2: CalendarTime = in_calendar(later, cal)
|
|
let sol1: String = cal_format(ct1, "%sol")
|
|
let sol2: String = cal_format(ct2, "%sol")
|
|
let diff: Int = str_to_int(sol2) - str_to_int(sol1)
|
|
return diff
|
|
}
|
|
|
|
fn main() -> Void {
|
|
println(int_to_str(run_test()))
|
|
}
|