diff options
Diffstat (limited to 'tools.ml')
-rwxr-xr-x | tools.ml | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -268,19 +268,21 @@ module Date = struct + day + b + 1720995 -(* + 2415019 (* Shift to 30/12/1899 *) *) + - 2415019 (* Shift to 30/12/1899 *) |> Num.num_of_int end let date_from_julian_day day = begin + let shift_day = Num.floor_num day + |> Num.add_num (Num.num_of_int 2415019) in - let z = Num.int_of_num (Num.floor_num day) in + let z = Num.int_of_num shift_day in let f = if z >= 2299161 then (* We use the Num module here to prevent overflow *) - let day' = Num.(((num_of_int 4) */ day +/ (num_of_int 274277)) // (num_of_int 146097)) + let day' = Num.(((num_of_int 4) */ shift_day +/ (num_of_int 274277)) // (num_of_int 146097)) |> Num.floor_num |> Num.int_of_num in z + 1401 + ((day' * 3) / 4) - 38 |