Lua學習筆記 第二十二章 作業系統庫

2021-06-24 11:23:32 字數 2228 閱讀 4406

作業系統庫定義在table os中,其中包含了檔案操作函式、獲取當前日期和時間的函式,以

及其它一些與作業系統相關的功能。對檔案操作而言,這個庫只提供了兩個函式,乙個是用

於檔案改名的

os.rename

函式,另乙個是用於刪除檔案的

os.remove

函式。

22.1日期和時間

在lua中,函式time和date提供了所有的日期和時間功能。

如果不帶任何引數呼叫time函式,它會以數字形式返回當前的日期和時間。

如果用乙個table作為引數呼叫它,它會返回乙個數字,表示該table中所描述的日期和時間。

這個table具有以下字段:

year       

乙個完整的年份

month       01——12

day         01——31

hour        00——23

min         00——59

sec         00——59

isdst      

乙個布林值,true表示夏令時

前三個欄位是必須要有的,其它字段預設為中午(12:00:00).

print(os.time())

函式date是乙個反函式,它可以將乙個表示日期和時間的數字轉換成某些高階的表現形式。

其第乙個引數是格式字串,指定了期望的表示形式;第二個引數是日期和時間的數字,

預設為當前日期和時間。

如為了生成乙個日期table,可以使用格式字串"*t".注意:除了用於os.time的那些欄位外,

os.date所建立的table中還包含了星期數(wday)和一年中的第幾天(yday)。這個table中所

表示的時間是本機所在時區的時間。如果格式字串是

"!*t"

,那麼table

中所表示的時間是

格林尼治時間。

對於其它格式字串,os.date會將日期格式化為乙個字串,這個字串是傳入格式字元

串的乙個複製,但其中的某些特殊標記被替換成了時間和日期資訊。所有的標記都以"%"開頭,

並伴隨乙個字母。例如:

print(os.date("today is %a, in %b"))    -->today is tuesday, in may

下表列出了所有的標記及其含義;對於數字值,表中也列出了它們的有效範圍:

%a 

一星期中天數的簡寫

%a 

一星期中天數的全稱

%b 

月份的簡寫

%b 

月份的全稱

%c 

日期和時間(09/16/9823:48:10)

%d 

乙個月中的第幾天[01-31]

%h  24小時制中的小時數[00-23]

%i  12小時制中的小時數[01-12]

%j 

一年中的第幾天[001-366]

%m 

分鐘數[00-59]

%m 

月份數[01-12]

%p 

上午am或下午pm

%s 

秒數[00-59]

%w 

一星期中的第幾天[0-6]

%x 

日期(09/16/98)

%x 

時間(23:48:10)

%y 

兩位數的年份[00-99]

%y 

完整的年份(1998)

%% 

字元%如果不帶任何引數呼叫date函式它會使用格式%c。如果需要一種固定的表示形式,可以使用

顯示的格式字串"%m/%d/%y".

函式os.clock會返回當前cpu時間的秒數,一般可用於計算一點**的執行時間。

22.2 其它系統呼叫

函式os.exit可終止當前程式的執行;

函式os.getenv可獲取乙個環境變數的值,並接受哦乙個變數名,返回對應的字串值:

print(os.getenv("home"))--> /home/lua

如果乙個環境變數沒有定義,則返回nil。

函式os.execute可執行一條系統命令,它需要接受乙個命令字串,並返回乙個錯誤**。

如可用以下函式建立新目錄:

function createdir(dirname)

os.execute("mkdir".. dirname)

end

第二十二章 Teamware需求

teamware正如他的名字一樣,是乙個團隊使用的groupware。groupware的定義是 teamware的功能需求 公共功能 使用者管理 角色管理 客戶管理 crm 專案管理 安全 授權和認證 業務功能 公告欄 notice 位址本 address book todo列表 todo lis...

第二十二章 橋接模式

很多情況下用繼承會帶來麻煩。比如,物件的繼承關係是在編譯時就定義好了的,所以無法在執行時改變從父類繼承的實現。子類的實現與它的父類有非常緊密的依賴關係,以至於父類實現中的任何變化必然會導致子類發生變化。當你需要復用子類時,如果繼承下來的實現不適合解決新的問題,則父類必須重寫或被其他更適合的類替換。這...

第二十二題

第二十二題 韓信點兵 在中國數學史上,廣泛流傳著乙個 韓信點兵 的故事 韓信是漢高祖劉邦手下的大將,他英勇善戰,智謀超群,為漢朝建立了卓越的功勞。據說韓信的數學水平也非常高超,他在點名的時候,為了知道有多少兵,同時又能保住軍事機密,便讓士兵排隊報數 按從1到5報數,記下最末乙個士兵報的數為1 按從1...