一個計算自己活了多少天的函式
阿新 • • 發佈:2019-02-13
今天因為一個段子,忽然想看看自己活了多少天。這個用lua實現是超簡單的
function day_diff(o) local daydiff = 0 local n = os.date("*t") while 1 do if o.year == n.year and o.month == n.month and o.day == n.day then break end o.day = o.day + 1 -- 指向下一天,比如當前是1月31號,這裡變成1月32號 o = os.date("*t", os.time(o)) --將上一步得到的日期重新組織成有效日期,上例就是2月1號 daydiff = daydiff +1 end return daydiff end end local o = {year = 2012, month = 12, day = 21} print(day_diff(o)) ---->573
可以順便計算一下,自己要活滿30000天,是哪一天:
local d = {year = 2012, month = 12, day = 30021}
print(os.date("%c", os.time(d)))
不過這麼長的時間跨度,在windows(我的win7,64bit)上超出的os.time的時間範圍無法計算。在linux(CentOS6.3)上可以計算。具體原因看lua5.2的文件裡說是不同平臺的特性