作業系統庫定義在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...