最近的工作是要求写一个任务系统,需要在特定日期重置任务,或者在天数后重置任务。
这就延伸出一个问题,如何得知条件天数后的日期。
这个问题的难点在于,每个月的天数不一样,加上相同的天数后每个月变化后的日期怎么处理。
例如,我们要求40天后的日期
其实lua的时间函数十分强大,可以用以下方法:
1.算出当时间,以表表示。
2.算出40天后的日期。
程序与结果如下
local now_time = os.date("*t", os.time())
for k,v in pairs(now_time) do
print(k,v)
end
print("----------------分割--------------------------")
now_time.day = now_time.day + 40
local next_monday = os.date("*t", os.time(now_time))
for k,v in pairs(next_monday) do
print(k,v)
end
特别说明
1.os.date创建日期表时now_time,所有的字段均在有效范围之内。(例如, now_time.daya+40之后,now_time.day = 57)
2.os.time传入一个修改后的日期表now_time(now_time.day = 57)时,其中的字段不需要归一化,会自动处理,得到新时间戳
3.得到的t2时间戳通过os.date转化为日期表,及可得到40天后的被归一化日期表。
4.同理也可以通过改变hour来计算5小时后,改变min来计算100分钟后,改变month来计算6个月后的日期。