【发布时间】:2019-01-27 13:39:12
【问题描述】:
我在 Lua 中使用十进制时间并对它们进行算术运算。 例如 124500+5=124505 (12:45:05) 什么公式可以避免60位问题? 124459+5=124504(不是 124464) 我该如何解决?
【问题讨论】:
标签: lua
我在 Lua 中使用十进制时间并对它们进行算术运算。 例如 124500+5=124505 (12:45:05) 什么公式可以避免60位问题? 124459+5=124504(不是 124464) 我该如何解决?
【问题讨论】:
标签: lua
您将编队与计算混合在一起。最好的方法是将时间“字符串”转换为实数:
12:45:05 -> 12 * 60 * 60 + 45 * 60 + 05 = 45905
函数可能如下所示:
function time_to_number(t)
return (math.floor(t / 10000) * 60 * 60) + ((math.floor(t / 100) % 100) * 60) + (t % 100)
-- you can also use % 10000 if the hours are limited to two digits
end
现在您可以计算秒数了。
要格式化返回的值,您可以使用此函数
function time_split(t)
local hour = math.floor(t / 3600)
local min = math.floor((t % 3600) / 60)
local sec = (t % 3600) % 60
return hour, min, sec
end
为了便于阅读,我使用了很多括号,但并非都是必需的。
【讨论】: