自分が何日生きたかを計算する関数です
916 ワード
今日はネタがあったので、ふと自分が何日生きているのか見たいです.これは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(私のwin 7、64 bit)で超えたosです.timeの時間範囲は計算できません.linux(CentOS 6.3)
)で計算できます.具体的な原因はlua 5.2のドキュメントには異なるプラットフォームの特性が記載されています