ref: d0ffb958c7247028223c7e53253249d52a47a324
dir: /doc/api/libdate/manipulation.txt/
{ title: Creation and Manipulation description: Libdate API documentation. } Creation and Manipulation ------------------------- pkg date = /* useful constructors */ const utcnow : (-> instant) const now : (tz : byte[:] -> instant) const tozone : (d : instant, zone : byte[:] -> instant) const mkdate : (y : int, m : int, day : int, zone : byte[:] -> instant) const mkdatetime : (year : int, mon : int, day : int, \ h : int, m : int, s : int, zone : byte[:] -> instant) const mkinstant : (tm : std.time, zone : byte[:] -> instant) const localoff : (tm : std.time -> duration) const tzoff : (tzname : byte[:], tm : std.time -> duration) const tzname : (tzoff : int -> byte[:]) const isleap : (d : instant -> bool) /* date differences */ const add : (d : instant, dt : duration -> instant) const sub : (d : instant, dt : duration -> instant) const addperiod : (d : instant, dt : period -> instant) const subperiod : (d : instant, dt : period -> instant) const duration : (a : instant, b : instant -> duration) pkglocal const recalc : (inst : instant# -> std.time) ;; Creation ----------- const utcnow : (-> instant) Creates an instant representing the current time. The timezone is UTC. As a general philosophical point, dates written out persisetntly should generally be in UTC, so this function should generally be used to get dates. Returns: An instant representing the current time in the UTC timezone. const now : (tz : byte[:] -> instant) Creates an instant representing the current time. The timezone is the local time. This is useful for displaying dates and times to the user. Returns: An instant representing the current time in the local timezone. const tozone : (d : instant, zone : byte[:] -> instant) Takes an instant and converts it to a new timezone. This takes the instants by value, and therefore, does not mutate any of its arguments. Returns: An instant representing provided time in the requested timezone. const mkdate : (y : int, m : int, day : int, zone : byte[:] -> instant) Creates a date with the given year, month, and day in the given timezone. The time is set to 0:00:00 Returns: A date representing the given ymd const mkdatetime : (year : int, mon : int, day : int, \ h : int, m : int, s : int, zone : byte[:] -> instant) Creates a date and time pair with the given year, month, day, at the time h, m, s, in the provided timezone. The microseconds are zeroed. Returns: A date representing the given ymd:hms const mkinstant : (tm : std.time, zone : byte[:] -> instant) Creates an instant from a time type. This time can be derived from the standard library, or computed from any other source. The time is in microseconds since the Unix epoch (Jan 1 1970, 0:00, UTC). Returns: An instant representing a std.time in the requested timezone Timezones --------- const localoff : (tm : std.time -> duration) Gets the local timezone offset for a time. Note that timezones can change due daylight savings, politics, and other similar factors, so a timezone offset needs to be associated with a specific instant. Returns: a duration representing the local timezone offset. const tzoff : (tzname : byte[:], tm : std.time -> duration) Gets the timezone offset for a time and timezone pair. Note that timezones can change due daylight savings, politics, and other similar factors, so a timezone offset needs to be associated with a specific instant. Returns: a duration representing the requested timezone offset. const isleap : (d : instant -> bool) Returns: whether a specific instant is within a leap year or not. Manipulation ------------ const add : (d : instant, dt : duration -> instant) const sub : (d : instant, dt : duration -> instant) Adds or subtracts a duration from a date. A duration is an absolute length of time, and is not adjusted for calendar shifts around DST and similar events. Returns: an instant representing the adjusted time. const addperiod : (d : instant, dt : period -> instant) const subperiod : (d : instant, dt : period -> instant) Adds or subtracts a period from a date. A period is a humanized length of time, and is adjusted for calendar shifts around DST and similar events. Returns: an instant representing the adjusted time. const duration : (a : instant, b : instant -> duration) Returns: the duration representing the difference between the two provided instants.