首页 > 解决方案 > 有没有办法在 Lua 中对特定日期进行倒计时?

问题描述

所以在听说 Lua 比 python 更通用之后,我只是在修修补补,所以我尝试以 DDD:HR:MN:SC 的形式倒计时一年。如果有人能给我一个例子,将不胜感激!

标签: luacountdown

解决方案


以下代码应该完全符合您的要求:

local function sleep(s)
  local t = os.clock() + s
  repeat until os.clock() > t
end

local function getDiff(t)
  return os.difftime(t, os.time())
end

local function dispTime(t)
  local d = math.floor(t / 86400)
  local h = math.floor((t % 86400) / 3600)
  local m = math.floor((t % 3600) / 60)
  local s = math.floor((t % 60))
  return string.format("%d:%02d:%02d:%02d", d, h, m, s)
end

local function countdown(tTbl)
  local diff = getDiff(os.time(tTbl))

  repeat
    print(dispTime(diff))
    -- os.execute('echo ' .. dispTime(diff))
    sleep(1)
    diff = getDiff(os.time(tTbl))
  until (diff <= 0)
end


countdown{
  day = 24,
  month = 12,
  year = 2019,
  hour = 0,
  min = 0,
  sec = 0
}

推荐阅读