Lua中獲取第二天凌晨的剩餘時間

在時間這個問題上,lua提供兩大方法來供開發者使用,一個是os.time(),一個是os.date(),這兩大方法可以滿足日常開發的需求。

那麼我們如何準確運用這兩大方法呢。

在這一文章中我們先講os.time(),並通過一個簡單的例子來獲取到指定時間的秒數。

        在開始這個例子之前,我們需要明白一些東西:

        os.time() 得到是當前時間的距離1970.1.1.08:00時間的秒數,如果傳入的參數小於這個時間,那麼就會得到一個,秒數就是負數,會得到一個空值

        如果沒有任何參數,就會返回當前時間。如果參數一個table,並且table的域必須有 year, month, day, 可有也可以沒有 hour, min, sec, isdst,則會返回table所代表日期的時間,如果未定義後幾項,默認時間爲當天正午(12:00:00)。 返回值是一個 number ,其值取決於你的系統。

local time=os.time()  --返回當前時間

        那麼顯而易見這個方法返回的是一個秒數。

local toTime=os.time({year =2016, month = 11, day =23, hour =17, min =17, sec = 00})

       如果我們給os.time()傳入一個自定義時間的table,代碼如上所示,那麼我們也將得到那個時間的總秒數。

       用未來時間減去當前時間,就能獲取到指定時間的秒數。

那麼我們就來完成這個例子

--獲取到第二日凌晨的剩餘時間 返回秒數
function GetReaminSecondsTo24()
	local toYear=os.date("*t").year
	local toMonth=os.date("*t").month
	local toDay=os.date("*t").day
	local toTime = os.time({year =toYear, month = toMonth, day =toDay, hour =23, min =59, sec = 59})
	local time=os.time()
	return toTime-time+1;   --爲什麼+1?因爲我們返回的是當日23:59:59的秒數,如果是第二天凌晨的                                                                        
                            --話就需要多加1
end

 

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