]>
git.madduck.net Git - etc/awesome.git/blobdiff - luatz/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:
+local strftime = require "luatz.strftime".strftime
local strformat = string.format
local floor = math.floor
local function idiv ( n , d )
local strformat = string.format
local floor = math.floor
local function idiv ( n , d )
return strformat ( "%04u-%02u-%02uT%02u:%02u:%06.3f" , self:unpack ( ) )
end
return strformat ( "%04u-%02u-%02uT%02u:%02u:%06.3f" , self:unpack ( ) )
end
-local strftime = require "luatz.strftime".strftime
function timetable_methods:strftime ( format_string )
return strftime ( format_string , self )
end
function timetable_methods:strftime ( format_string )
return strftime ( format_string , self )
end
+local timetable_mt
+
+local function coerce_arg ( t )
+ if getmetatable ( t ) == timetable_mt then
+ return t:timestamp ( )
+ end
+ return t
+end
+
+timetable_mt = {
__index = timetable_methods ;
__tostring = timetable_methods.rfc_3339 ;
__eq = function ( a , b )
__index = timetable_methods ;
__tostring = timetable_methods.rfc_3339 ;
__eq = function ( a , b )
__lt = function ( a , b )
return a:timestamp ( ) < b:timestamp ( )
end ;
__lt = function ( a , b )
return a:timestamp ( ) < b:timestamp ( )
end ;
+ __sub = function ( a , b )
+ return coerce_arg ( a ) - coerce_arg ( b )
+ end ;
}
local function cast_timetable ( tm )
}
local function cast_timetable ( tm )
end
local function new_from_timestamp ( ts )
end
local function new_from_timestamp ( ts )
+ if type ( ts ) ~= "number" then
+ error ( "bad argument #1 to 'new_from_timestamp' (number expected, got " .. type ( ts ) .. ")" , 2 )
+ end
return new_timetable ( 1970 , 1 , 1 , 0 , 0 , ts )
end
return new_timetable ( 1970 , 1 , 1 , 0 , 0 , ts )
end