Lua時間函數os.time()與os.data()的具體運用-------如何得知條件天數後的日期

      最近的工作是要求寫一個任務系統,需要在特定日期重置任務,或者在天數後重置任務。

      這就延伸出一個問題,如何得知條件天數後的日期。

      這個問題的難點在於,每個月的天數不一樣,加上相同的天數後每個月變化後的日期怎麼處理。

      例如,我們要求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個月後的日期。

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章