]>
git.madduck.net Git - etc/awesome.git/blobdiff - doc/timetable.md
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
Equality and comparisons should work between timetable objects.
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.
Returns a new timetable with the given contents.
-## `new_from_timestamp ( timestamp )`
+### `new_from_timestamp ( timestamp )`
-Returns a new timetable given a timestamp in seconds since the unix epoch of
+Returns a new (normalised) timetable, given a timestamp in seconds since the unix epoch of
-`:normalise ( )` should probably be called before use to resolve to the current time and
-date.
Returns a new independent instance of an existing timetable object.
Returns a new independent instance of an existing timetable object.
-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`
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`
+
+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
+### `:rfc_3339 ( )` and `__tostring` metamethod
Returns the timetable formatted as an rfc-3339 style string.
The timezone offset (or Z) is not appended.
Returns the timetable formatted as an rfc-3339 style string.
The timezone offset (or Z) is not appended.
`:normalise ( )` should be called first.
`:normalise ( )` should be called first.
Returns the timetable as the number of seconds since unix epoch (1970-01-01) as a lua number.
Returns the timetable as the number of seconds since unix epoch (1970-01-01) as a lua number.
Unpacks the timetable object; returns `year`, `month`, `day`, `hour`, `min`, `sec`, `yday`, `wday`
Unpacks the timetable object; returns `year`, `month`, `day`, `hour`, `min`, `sec`, `yday`, `wday`