X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/94c5a08ebdc03125f84e7fed814a1599c788a09e..38cb1f49b0e0be7018298018bb69e8fa3f785ad9:/doc/timetable.md diff --git a/doc/timetable.md b/doc/timetable.md index 92c4302..49fe046 100644 --- a/doc/timetable.md +++ b/doc/timetable.md @@ -21,29 +21,37 @@ called to modify components to return to their standard range. Equality and comparisons should work between timetable objects. -## `new ( year , month , day , hour , min , sec , [yday] , [wday] )` +### `new ( year , month , day , hour , min , sec , [yday] , [wday] )` Returns a new timetable with the given contents. -## `new_from_timestamp ( timestamp )` +### `new_from_timestamp ( timestamp )` Returns a new (normalised) timetable, given a timestamp in seconds since the unix epoch of 1970-01-01. -## `:clone ( )` +### `:clone ( )` Returns a new independent instance of an existing timetable object. -## `:normalise ( )` +### `:normalise ( )` -Mutates the current object's time and date components so that they lie within 'normal' +Mutates the current object's time and date components so that are integers within 'normal' ranges e.g. `month` is `1`-`12`; `min` is `0`-`59` +First, fractional parts are propagated down. +e.g. `.month=6.5` `.day=1` (which could be read as "the first day after the middle of June") +normalises to `.month=2` `.day=16` -## `:rfc_3339 ( )` and `__tostring` metamethod +Second, any fields outside of their normal ranges are propagated up +e.g. `.hour=10` `.min=100` (100 minutes past 10am) +normalises to `.hour=11` `.min=40` + + +### `:rfc_3339 ( )` and `__tostring` metamethod Returns the timetable formatted as an rfc-3339 style string. The timezone offset (or Z) is not appended. @@ -51,11 +59,11 @@ The ranges of components are not checked, if you want a valid timestamp, `:normalise ( )` should be called first. -## `:timestamp ( )` +### `:timestamp ( )` Returns the timetable as the number of seconds since unix epoch (1970-01-01) as a lua number. -## `:unpack ( )` +### `:unpack ( )` Unpacks the timetable object; returns `year`, `month`, `day`, `hour`, `min`, `sec`, `yday`, `wday`