X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/3a7693d5c89981e1230d0d49163fc23d02224873..e0dbd486c7005f901811529ef5b82f5bd95211ea:/src/timetable.lua diff --git a/src/timetable.lua b/src/timetable.lua index 7e986a1..9b78576 100644 --- a/src/timetable.lua +++ b/src/timetable.lua @@ -98,6 +98,17 @@ local function normalise ( year , month , day , hour , min , sec ) 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 = { } @@ -119,8 +130,15 @@ function timetable_methods:normalise ( ) end timetable_methods.normalize = timetable_methods.normalise -- American English +function timetable_methods:timestamp ( ) + return timestamp ( unpack_tm ( self ) ) +end + local timetable_mt = { __index = timetable_methods ; + __eq = function ( a , b ) + return a:timestamp() < b:timestamp() + end ; } local function cast_timetable ( tm ) @@ -141,6 +159,7 @@ end return { doomsday = doomsday ; normalise = normalise ; + timestamp = timestamp ; new = new_timetable ; cast = cast_timetable ;