CalendarLib.FtimeSourceTime implementation in which seconds are floats.
This module uses float. Then results may be very unprecise.
include Time_sig.S with type second = floatType of a time.
The different fields of a time.
Type of a second.
Second implementation
make hour minute second makes the time hour-minute-second.
Labelled version of make. The default value is 0 for each argument.
midnight () is midnight (expressed in the current time zone). So, it has always the same behaviour as make 0 0 0.
midday () is midday (expressed in the current time zone). So, it has always the same behaviour as make 12 0 0.
convert t t1 t2 converts the time t expressed in the time zone t1 to the same time expressed in the time zone t2. @example convert (make 20 0 0) (Time_Zone.GMT_Plus 2) (Time_Zone.GMT_Plus 4) returns the time 22-0-0.
from_gmt t is equivalent to convert t Time_Zone.GMT (Time_Zone.current ()).
normalize t returns t such that hour t belongs to [0; 24[. The second component of the result is the number of days needed by the modification. @example normalize (make 22 0 0) returns the time 22-0-0 and 0, normalize (make 73 0 0) returns the time 1-0-0 and 3 and normalize (make (-73) 0 0) returns the time 23-0-0 and (-4).
Number of seconds of a time. @example to_seconds (make 1 2 3) returns 3600 + 120 + 3 = 3723.
Number of minutes of a time. The resulting fractional part represents seconds. @example to_minutes (make 1 2 3) returns 60+2+0.05 = 62.05.
Number of hours of a time. The resulting fractional part represents minutes and seconds. @example to_hours (make 1 3 0) returns 1 + 0.05 = 1.05.
Return true is the time is before midday in the current time zone; false otherwise. @example both is_pm (make 10 0 0) and is_pm (make 34 0 0) return true.
Return true is the time is after midday in the current time zone; false otherwise. @example both is_am (make 20 0 0) and is_am (make 44 0 0) return true.
app t p returns t + p. @example add (make 20 0 0) (Period.minute 70) returns the time 21:10:0.
sub t1 t2 returns the period between t1 and t2.
rem t p is equivalent to add t (Period.opp p).
next t f returns the time corresponding to the next specified field. @example next (make 20 3 31) `Minute returns the time 20:04:31. (i.e. one minute later).