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

Lua数月和数年倒计时计时器,lua,coronasdk,Lua,Coronasdk,下面是用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( s

下面是用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
天(和小时)是微不足道的,但月和年又如何呢?因为你没有时间戳告诉我们还有多少秒要做什么,所以很难根据月份的长度(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

例如,我希望倒计时从未来的自定义日期开始,例如2025年4月1日将显示(8年、11个月、10天、11小时等),为了简单起见,它不必精确到闰年和月天数(尽管我想稍后添加)好的,我明白了。好的,我认为我的代码片段对于您的用例来说已经足够好了。作为一个例子,我希望倒计时从一个未来的自定义日期开始,2025年4月1日将显示(8年、11个月、10天、11小时等),为了保持简单,它不必精确到闰年和月内的天数(尽管我想稍后添加)好的,我懂了。那么,我认为我的代码片段对于您的用例来说已经足够好了。