如何在Lua中将天数添加到由os.date()生成的日期

Lua中有一个名为date()的函数位于os模块中。调用os.date()会以Tue Aug 10 13:04:17 2021格式返回当前日期和时间。

像这样使用:os.date("%x")将给我们以下结果:08/10/21

是否可能操纵日期函数以添加天数到当前返回的日期/时间?就像尝试使用.setDate()突变器将天数添加到JavaScript日期时发生的情况一样。我已经查看了Lua中如何将天数添加到给定日期时间,但这不是我想要实现的。

预先感谢您的帮助。

点赞
用户107090
用户107090

使用 os.time 并以秒为单位计算:

t=os.time()
print(os.date("%c",t))
d=12
t=t+d*24*60*60
print(os.date("%c",t))

使用 os.time 函数以获取当前时间,并使用 os.date 函数将其格式化成可读的时间字符串。后面的代码将 d 设为 12,即表示将时间往后推迟 12 天。然后将秒数计算出来并将其加到当前时间上,最后再使用 os.date 格式化输出新的时间。

2021-08-10 12:53:13
用户11740758
用户11740758

交互式地使用io.read()...

io.write('输入要增加的天数>') 
print(os.date('%c',os.time({year=os.date('%Y'),month=os.date('%m'),day=tonumber(os.date('%d'))+tonumber(io.read()),hour=os.date('%H'),min=os.date('%M'),sec=os.date('%S')})))

负数也是可以的。

...并且 365 天后是什么日期 ;-)

...当然没有错误或异常处理(即没有输入,只按 RETURN 键)。

...即使是 float 也会失败,数字必须是一个 integer

2021-08-10 14:55:27