lua根据两个时间计算天数差值

lua根据两个时间计算天数差值

记录一下,lua如何根据两个时间来计算天数差,例如:今天时间是23:00, 明天的时间是1:00, 时间不足24小时,但日数的差值也为1,就是说不足1天也计算为1天,假如简单通过加减24小时来计算,结果会出现误差, 我们看下如何实现。

实现思路:首先对两个时间点进行解析,解析出年月日,重新设置时间为0点来获取时间戳(不传入时间参数默认为0点),然后对两个时间戳相减得出秒数差值,再除以1天的总秒数,即可得出天数差值,最后取绝对值。

function DateUtil.getDateNum(timeNow, timeNext)
    local ret = 0
    if timeNow and timeNext then
        local now = os.date("*t", timeNow)
        local next = os.date("*t", timeNext)

        if now and next then
            local num1 = os.time({ year = now.year, month=now.month, day=now.day })
            local num2 = os.time({ year = next.year, month=next.month, day=next.day })
            if num1 and num2 then
                ret =  math.abs(num1 - num2) / (3600*24)
            end
        end
    end
    return ret
end

测试:当天与国庆还有多少天

    --测试日期差
    local now = os.time();
    local preTime = os.time({year=2021, month=10, day=1, hour=10, min=1, sec=0})
    local num = DateUtil.getDateNum(now, preTime)
    print("day num =", num)

你可能感兴趣的:(lua,lua)