最近的工作是要求寫一個任務系統,需要在特定日期重置任務,或者在天數後重置任務。
這就延伸出一個問題,如何得知條件天數後的日期。
這個問題的難點在於,每個月的天數不一樣,加上相同的天數後每個月變化後的日期怎麼處理。
例如,我們要求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個月後的日期。