Lua簡單實現(xiàn)限制時間段運(yùn)行(原創(chuàng))


Author:bbs.bin.x6.cc

Date:2021.07.21


%a? 星期簡寫 %A? 星期大寫 %b? 月份簡寫 %B? 月份大寫 %c? 日期時間 %d? 月份天數(shù) %H? 小時[24進(jìn)制] %I? 小時[12進(jìn)制] %j? 年中第幾天 %m? 月份 %M 分鐘 %p? am或pm %r? 具體時間 %S? 秒數(shù) %w? 星期 %W? 第幾周 %x? 日期 % X? 時間 %y? 兩位數(shù)的月份 %Y 完整的月份 %z? 時區(qū) %% 百分號

-- 由于嚴(yán)謹(jǐn)?shù)臏y試,也感謝版主的指正,現(xiàn)修改后的代碼為:

-- 獲取%H? 小時[24進(jìn)制] %M 分鐘 %S? 秒數(shù)

Chunk = tostring(tonumber(os.date("%H%M%S")))

-- 例:

if Chunk > '230000' and Chunk < '80000' then

-- 提示內(nèi)容:

print("規(guī)定23:00-次日8:00不開放腳本\n帶來的不便還望諒解\n屆時敬請留意開放時間")

return nil

-- 防止某些腳本加載器略過

-- 相比os.exit()更有優(yōu)勢,也不用執(zhí)行error

end

-- 是不是簡潔明了,日后有時間將會對其進(jìn)行更多的拓展

-- [[

選改,已注釋

看完文章的Editor們請勿錯過這條留言:

目前測試出了第一個bug

即24小時制在以下時間段會導(dǎo)致時間范圍發(fā)生變化

00:10至00:59時(原6位變?yōu)?位)

00:00至00:09時(原6位變?yōu)?位至3位不等)

01:00至09:59時(原6位變?yōu)?位)

解決方案:

①:可以選擇改用tonumber(os.date("%I%M%S"))[12小時制],并更改范圍

②:24小時制在以上三個時間段內(nèi)使用時請務(wù)必將左右兩邊的范圍同時改成對應(yīng)的位數(shù),以免發(fā)生不必要的麻煩

③:也可以選擇啟用我留下的備用寫法,一勞永逸,注意將右邊的5位,例:80000,改回6位,例:080000,然后將and改為or

為您使用時所帶來的不便深感抱歉

以下是我的舊思路(對執(zhí)行效率有一定的影響,可在特殊需求的情況下改用)↓

Block = string.sub(os.date(),12,20)

-- 截取字符

Chunk = string.gsub(Block,':','')

-- 將:替換為空,截得整段,與修改后的代碼總體效果相等

]]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

推薦閱讀更多精彩內(nèi)容

  • 目標(biāo) 基于openresty 和 lua 參考apisix的后臺實現(xiàn)一個自己的網(wǎng)關(guān)那首先要搭建一個apisix 啊...
    dozenx閱讀 969評論 0 1
  • lua基礎(chǔ)數(shù)據(jù)類型 nil 一個變量在第一次賦值前的默認(rèn)值是 nil, 將nil 賦予給一個全局變量就等同于刪除它...
    毛球小二閱讀 2,047評論 0 6
  • 前言 也做過幾次需要使用到time和date的需求了,每次都要百度找一遍,感覺有點蛋疼,所以干脆花點時間研究并記錄...
    SimanX閱讀 9,420評論 0 0
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,882評論 0 38
  • 前言# 接觸過linux系統(tǒng)的人大概都知道linux系統(tǒng)的中date命令有多么的強(qiáng)大,單單是那些可選參數(shù)都讓人眼花...
    AlbertS閱讀 66,515評論 0 17