【问题标题】:math operations with hours,minutes and seconds带小时、分钟和秒的数学运算
【发布时间】:2019-01-27 13:39:12
【问题描述】:

我在 Lua 中使用十进制时间并对它们进行算术运算。 例如 124500+5=124505 (12:45:05) 什么公式可以避免60位问题? 124459+5=124504(不是 124464) 我该如何解决?

【问题讨论】:

    标签: lua


    【解决方案1】:

    您将编队与计算混合在一起。最好的方法是将时间“字符串”转换为实数:

    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
    

    为了便于阅读,我使用了很多括号,但并非都是必需的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多