From 5c2e70f0dcb09cb7b9180f7627cddb2fb2e2b9a2 Mon Sep 17 00:00:00 2001 From: John Clark Date: Mon, 30 Dec 2013 16:27:05 -0500 Subject: [PATCH] Fixed and/or problem in dobj.__lt and dobj.__le This snippet demonstrates the problem: local date = require "date" local a = date("20131230 00:57:04") local b = date("20131230 01:00:00") print(a >= b) -- should be false --- date.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/date.lua b/date.lua index fcf2843..c90d8a6 100644 --- a/date.lua +++ b/date.lua @@ -638,8 +638,8 @@ return self:fmt0((gmatch(str, "${%w+}")) and (gsub(str, "${%w+}", function(x)local f=tvspec[x];return (f and f(self)) or x end)) or str) end - function dobj.__lt(a,b) return (a.daynum == b.daynum) and (a.dayfrc < b.dayfrc) or (a.daynum < b.daynum) end - function dobj.__le(a, b)return (a.daynum == b.daynum) and (a.dayfrc <= b.dayfrc) or (a.daynum <= b.daynum) end + function dobj.__lt(a, b) if (a.daynum == b.daynum) then return (a.dayfrc < b.dayfrc) else return (a.daynum < b.daynum) end end + function dobj.__le(a, b) if (a.daynum == b.daynum) then return (a.dayfrc <= b.dayfrc) else return (a.daynum <= b.daynum) end end function dobj.__eq(a, b)return (a.daynum == b.daynum) and (a.dayfrc == b.dayfrc) end function dobj.__sub(a,b) local d1, d2 = date_getdobj(a), date_getdobj(b)