]>
git.madduck.net Git - etc/awesome.git/blobdiff - src/timetable.lua
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:
return year , month , day , hour , min , sec
end
return year , month , day , hour , min , sec
end
+local function timestamp ( year , month , day , hour , min , sec )
+ return 60*60*24*(
+ year * year_length ( year )
+ + month * month_length ( month , year )
+ + day
+ )
+ + hour * (60*60)
+ + min * 60
+ + sec
+end
+
local timetable_methods = { }
local timetable_methods = { }
end
timetable_methods.normalize = timetable_methods.normalise -- American English
end
timetable_methods.normalize = timetable_methods.normalise -- American English
+function timetable_methods:timestamp ( )
+ return timestamp ( unpack_tm ( self ) )
+end
+
+function timetable_methods:rfc_3339 ( )
+ -- %06.4g gives 3 (=6-4+1) digits after decimal
+ return strformat ( "%04u-%02u-%02uT%02u:%02u:%06.4g" , unpack_tm ( self ) )
+end
+
local timetable_mt = {
__index = timetable_methods ;
local timetable_mt = {
__index = timetable_methods ;
+ __tostring = timetable_methods.rfc_3339 ;
+ __eq = function ( a , b )
+ return a:timestamp() < b:timestamp()
+ end ;
}
local function cast_timetable ( tm )
}
local function cast_timetable ( tm )
return {
doomsday = doomsday ;
normalise = normalise ;
return {
doomsday = doomsday ;
normalise = normalise ;
+ timestamp = timestamp ;
new = new_timetable ;
cast = cast_timetable ;
new = new_timetable ;
cast = cast_timetable ;