A time object has type, seconds and nanoseconds fields representing a point in time starting from some epoch. This is an arbitrary point in time, not just a time of day. Although times are represented in nanoseconds, the actual resolution may be lower.
The following variables hold the possible time types. For instance
(current-time time-process) would give the current CPU process
Monotonic time, meaning a monotonically increasing time starting from an unspecified epoch.
Note that in the current implementation
time-monotonicis the same as
time-tai, and unfortunately is therefore affected by adjustments to the system clock. Perhaps this will change in the future.
Create a time object with the given type, seconds and nanoseconds.
Get or set the type, seconds or nanoseconds fields of a time object.
set-time-type!merely changes the field, it doesn't convert the time value. For conversions, see SRFI-19 Time/Date conversions.
Return the current time of the given type. The default type is
Note that the name
current-timeconflicts with the Guile core
current-timefunction (see Time). Applications wanting to use both will need to use a different name for one of them.
Return the resolution, in nanoseconds, of the given time type. The default type is
#faccording to the respective relation between time objects t1 and t2. t1 and t2 must be the same time type.
Return a time object of type
time-durationrepresenting the period between t1 and t2. t1 and t2 must be the same time type.
time-differencereturns a new time object,
time-difference!may modify t1 to form its return.
Return a time object which is time with the given duration added or subtracted. duration must be a time object of type
subtract-durationreturn a new time object.
subtract-duration!may modify the given time to form their return.