函數
函數,就是該語言封裝了的一個功能塊,以方便使用者的調用。比如“now()”在VBScript中就是一個能顯示出當前日期和時間的函數。至於具體為什麼能顯示,則是該語言核心所定的,使用者只需明白“now()”就是用來能顯示日期時間的。那麼,我們當前接觸的VBScript還有其他什麼功能的函數嗎?
1,日期/時間函數
這些函數包括對“年”、“月”、“日”、“時”、“分”、“秒”、“星期”等的顯示。
(1)Now函數:根據電腦系統設定的日期和時間,返回當前的日期和時間值。使用方法now();
(2)Date函數:只返回當前電腦系統設定的日期值。使用方法:date();
(3)Time函數:只返回當前電腦系統設定的時間值。使用方法:time();
(4)Year函數:返回一個代表某年的整數。使用方法:year(date),其中date參數是任意的可以代表日期的參數,比如“year(date())”就表示是從“date()”得出的日期中提取其中“年”的整數。
另外,還可以這樣應用:“year(#520,2006#)”表示提取“2006年5月20日”中“年”的整數值。關於“520,2006”,也可使用“5-20-2006”、“5/20/2006”等形式表現,即“某月某日”和“某年”的組合。同時注意使用“#”進行包括以表示日期值。
(5)Month函數:返回1到12之間的整數值,表示一年中某月。使用方法:month(date)。關於參數date的說明和year函數相同。但要注意日期的正確性,比如“#13-31-2006#”,根本就沒有“13”月,肯定是錯誤的了。
(6)Day函數:返回1到31之間的整數值,表示一個月中的某天。使用方法:day(date)。關於參數date的說明和year函數相同。同樣要注意日期的正確性,比如“#2-30-2006#”其中對“2”月定義的“30”日這天就是錯誤的。
(7)Hour函數:返回0到23之間的整數值,表示一天中的某個小時。使用方法:hour(time)。其中參數time是任意的可代表時間的運算式。比如“hour(time())”就表示是從“time()”得出的時間中提取其中“小時”的整數。同樣,參數time還可以這樣應用“hour(#11:45:50#)”表示從“11”時“45”分“50”秒中提取當前小時數。當然,定義的時間要符合時間的規範。
(8)Minute函數:返回0到59之間的整數值,表示一小時中的某分鐘。使用方法:minute(time)。time參數的說明和hour函數相同。
(9)Second函數:返回0到59之間的整數值,表示一分鐘中的某秒。使用方法:second(time)。time參數的說明和hour函數相同。
(10)Weekday函數:返回一個星期中某天的整數。使用方法:weekday(date)。關於參數date的說明和year函數相同。該函數傳回值為“1”到“7”,分別代表“星期日”、“星期一”……“星期六”。比如當傳回值是“4”時就表示“星期三”。
(11)WeekDayName函數:返回一個星期中具體某天的字串。相對weekday函數而言即翻譯出“星期幾”,使用方法:weekdayname(weekday)。參數weekday即星期中具體某天的數值。比如“weekdayname(weekday(date()))”就表示當前是“星期幾”。因為“date()”表示的是當前的時間,而“weekday(date())”就表示的是一星期中具體某天的整數。
當然weekdayname函數最終顯示的字串內容還與當前作業系統語系有關,比如中文作業系統將顯示“星期一”這類的中文字元,而英文作業系統則顯示為“Mon”(Monday簡寫)。
此外,在VBScript中還有一些關於時間間隔的計算函數:
(1)DateAdd函數:返回指定時間間隔的日期、時間。可以計算出相隔多少年、或相隔幾個月、又或相隔幾個小時等的新日期、時間。使用方法:dateadd(interval,number,date)。
其中參數interval表示需要添加的時間間隔單位。其是以字串的形式表達的,比如“yyyy”表示年,“q”表示季度,“m”表示月份,“d”表示天數,“ww”表示周數,“h”表示小時數,“n”表示分鐘數,“s”表示秒數。
而參數number則表示添加的時間間隔數。其是以數值的形式表達的,可以為負值。參數date則要求是日期、時間的正確格式。
比如dateadd("d",100,"2006-5-20")就表示2006年5月20號以後的100天的日期值:2006-8-28。再比如dateadd("h",-12,"2005-5-2010:00:00")就表示2005年5月20號上午10點前的12小時的日期時間:2005-5-1922:00:00。
(2)DateDiff函數:返回兩個日期時間之間的間隔。可計算出兩個日期相隔的年代、小時數等。使用方法:datediff(interval,date1,date2)。
參數interval和dateadd函數中的interval參數內容描述相同,date1和date2參數分別就是相互比較的兩個日期時間。另外,當date1的日期時間值大於date2時,將顯示為負值。
比如DateDiff("yyyy","1982-7-18",date)表示某人的出生到現在已經多少年了。又比如DateDiff("d","1982-7-18","2062-7-18")則計算了80年過了多少天:29220。
2,字串處理函數
在指令碼的功能處理中,通常需要對一些字串進行一些修飾性處理。比如過濾掉字串中的敏感字眼以符合最終顯示的要求;又比如一段較長的字串,需要提取開頭的幾個字元時。
(1)Asc函數:返回字串中第一個字母對應的ANSI字元代碼。使用方法:asc(string)。其中string參數表示字串。
(2)Chr函數:返回指定了ANSI字元代碼對應的字元。使用方法:chr(chrcode)。參數chrcode是相關的標識數字。該函數的功能和asc函數形成對應。
比如:asc(“a”)表示小寫字母“a”的ANSI字元“97”;同樣chr(97)表示的就是“小寫字母a”。另外chr(chrcode)中參數chrcode值為0到31的數字時,表示不可列印的ASCII碼。比如“chr(10)”表示分行符號,“chr(13)”表示斷行符號符等,這常用於輸入和顯示格式的轉換中。