Lua 数月和数年的倒数计时器

Lua countdown timer for months and years

下面是用 LUA 编写的 Corona SDK 倒数计时器示例。 我该如何添加天数、月数和年数?

local function updateTime()
-- decrement the number of seconds
secondsLeft = secondsLeft - 1

-- time is tracked in seconds.  We need to convert it to minutes and seconds
local minutes = math.floor( secondsLeft / 60 )
local seconds = secondsLeft % 60

-- make it a string using string format.  
local timeDisplay = string.format( "%02d:%02d", minutes, seconds )
clockText.text = timeDisplay

结束

天(和小时)是微不足道的,但是几个月和几年呢?由于您没有时间戳告诉我们还剩下多少秒,因此很难确切知道有多少个月,具体取决于月份的长度(28、29、30 或 31 天)。如果我们也考虑闰年,那么年份也是如此。无论如何,这里有一些可能就足够了:

local SECONDS_IN_HOUR = 60 * 60
local SECONDS_IN_DAY = 24 * SECONDS_IN_HOUR
local SECONDS_IN_MONTH = 30 * SECONDS_IN_DAY -- assuming an average of 30 days per month
local SECONDS_IN_YEAR = 365 * SECONDS_IN_DAY

local years = math.floor((secondsLeft / SECONDS_IN_YEAR) % 365)
local months = math.floor((secondsLeft / SECONDS_IN_MONTH) % 12)
local days = math.floor((secondsLeft / SECONDS_IN_DAY) % 30)
local hours = math.floor((secondsLeft / SECONDS_IN_HOUR) % 24)
local minutes = math.floor((secondsLeft / 60) % 60)
local seconds = secondsLeft % 60