Вы можете использовать Unix.gettimeofday ()
, если вы установили sh базовое время, когда секунды в минуте были равны 0, и чтобы все последующие минуты имели длину 60 секунд. Последняя секунда была в 2016 году. Таким образом, вы можете запросить время (скажем) в начале 1 января 2017 года и использовать его в качестве своей базы.
Я попробовал следующее, и, похоже, это сработало для меня :
let (base, _) = Unix.mktime {
tm_sec = 0;
tm_min = 0;
tm_hour = 0;
tm_mday = 1;
tm_mon = 0;
tm_year = 117;
tm_wday = 0;
tm_yday = 0;
tm_isdst = false;
}
let seconds_in_minute () =
mod_float (Unix.gettimeofday () -. base) 60.0
Другими словами, быстрый тест показал, что значение вернулось к 0,0, когда время, отображаемое на моем компьютере, перешло на следующую минуту.
Это должно работать до тех пор, пока Следующая секунда добавляется лордами времени. Может быть, этого будет достаточно для ваших целей.