1. 程式人生 > >VB中format函式的使用。

VB中format函式的使用。

VB格式輸出函式可以使數值、日期或字串按指定的格式輸出。其格式為:

Format(<表示式>[, <格式字串>])

其中,<表示式>:要格式化的數值、日期或字串表示式。

<格式字串>:指定表示式的值的輸出格式。格式字元有三類:數值格式、日期格式和字串格式。格式字元要加引號。下面以例子說明格式輸出函式中最常用的一些格式字元的使用。

Format 返回變體型
Format$ 強制返回為文字

例如:

Print Format(123.45,“0000.000”)’ “0”為數字佔位符。顯示一位數字或零。結果為0123.450

Print Format(123.45,“0.0”)’ 結果為123.5

Print Format(123.45,"####.###")’ “#”為數字佔位符。顯示一位數字或什麼都不顯示。結果為123.45

Print Format(123.45,"#.#")’ 結果為123.5

Print Format(0.123,".##")’ 結果為.12

Print Format(0.123,“0.##”)’ 結果為0.12

也常用Format(<表示式>)將一個數值型資料轉換成字串。

例如:Format(3.14)的值為字串"3.14"。


數字型別的格式化

固定格式引數:
General Number 普通數字,如可以用來去掉千位分隔號
format$(“100,123.12”,“General Number”) 返回值 100123.12

Currency 貨幣型別,可新增千位分隔號和貨幣符號
format$(“100123.12”,“Currency”) 返回值 ¥100,123.12

Fixed 格式為帶兩位小數的數字
format$(“100123”,“Fixed”) 返回值 100123.00

Standard 標準,即帶千位分隔號和兩位小數
format$(“100123”,“Standard”) 返回值 100,123.00

Percent 百分數
format$(“100123”,“Percent”) 返回值 10012300.00%

Scientific 科學記數法
format$(“100123”,“Scientific”) 返回值 1.00E+05

Yes/No 當值為0時返回 NO,否則返回 YES
format$(“100123”,“Yes/No”) 返回值 Yes

True/False 當值為0時返回 False,否則返回 True
format$(“100123”,“True/False”) 返回值 True

On/Off 當值為0時返回 Off,否則返回 On
format$(“100123”,“Yes/No”) 返回值 On
自定義格式引數

“” 不進行格式化 返回值 原值

0 佔位格式化,不足補0
format$(“100123”,“0000000”) 返回值 0100123

佔位格式化,不足時不補0

format$(“100123”,"#######") 返回值 100123

. 強制顯示小數點
format$(“100123.12”,".000") 返回值 100123.120

% 轉化為百分數,一個%代表乘以100
format ( &quot; 10.23 &quot; , &quot; 0.00 f o r m a t (&quot;10.23&quot;,&quot;0.00%&quot;) 返回值 1023.00% format (“10.23”,“0.00%%”) 返回值 102300.00%%

, 以千為單位格化
format ( &quot; 10.23 &quot; , &quot; , &quot; ) 0 f o r m a t (&quot;10.23&quot;,&quot;,&quot;) 返回值 0 format (“10010.23”,",") 返回值 10
format$(“10010.23”,",0.00") 返回值 10.01

E- E+ e- e+ 顯示為科學記數(要注意格式語句,否則會和E的其它含義相混)
Format$(12.5,“0.00E+00”) 返回值 1.25E+01

$ 強制顯示貨幣符號
format$(“10.23”,"{threadcontent}.00") 返回值 ¥10.23

    • ( ) space 按位置顯示本樣
      Format$(“1234.56”,"-(0.00)") 返回值 -(1234.56)

\ 轉義符,顯示出特殊符號
Format$(“1234.56”,"#.00") 返回值 #1234.56

“ABC” 顯示雙引號 (" “) 之內的字串。如在程式碼中想在 format 中包含一個字串,必須用 Chr(34) 將文字括起來(34 為雙引號 (”))
Format$(123.45,“TTT”) 返回值 TTT
注:當雙引號中的文字包含特殊的引數符號如e,要使用轉義符"",否則會按e的作用顯示

; 類似多目運算子的作用。

當共有 四 部分時,
當大於0時,按第一部分進行格式化,
當小於0時按第二部分進行格式化,
當等於0時按第三部分進行格式化,
當為null值時,按第四部分進行格式化。如:
Format$(0,“0.00;負數;零;空”) 返回值 零

當共有 三 部分時,
當大於0時,按第一部分進行格式化,
當小於0時按第二部分進行格式化,
當等於0時按第三部分進行格式化,如:
Format$(-10,“0.00;ttt;零”) 返回值 ttt

當共有 兩 部分時,
當大於或等於0時,按第一部分進行格式化,
當小於0時按第二部分進行格式化,
Format ( 123 , &quot; 0.00 ; a b c &quot; ) a b c F o r m a t (-123,&quot;0.00;abc&quot;) 返回值 abc Format (123,“0.00;abc”) 返回值 123.00

當共有 一 部分時,按分號左邊進行格式化


日期型別的格式化

注意:在中文作業系統中,系統自動將月份輸為如:五月,而非 May

固定格式引數
General Date 基本型別
Format$(Now,“General Date”) 返回值 2006-5-25 14:56:15

Long Date 作業系統定義的長日期
Format$(Now,“Long Date”) 返回值 2006年5月25日

Medium Date 中日期(yy/mmm/dd)
Format$(Now,“Medium Date”) 返回值 06-5月-25

Short Date 作業系統定義的短日期
Format$(Now,“Short Date”) 返回值 2006-5-25

Long Time 作業系統定義的長時間
Format$(Now,“Long Time”) 返回值 15:06:36

Medium Time 帶AM/PM的12小時制,不帶秒
Format$(Now,“Medium Time”) 返回值 03:08 PM

Short Time 24時制的時間,不帶秒
Format$(Now,“Short Time”) 返回值 15:08

自定義格式引數
用來標識時間字元的間隔
Format$(Time(),“hh:nn”) 返回值 15:25

/ 用來標識日期字元的間隔
Format$(now,“yyyy/mm/dd”) 返回值 2006-05-25

c 格式化為國標的日期和時間
Format$(Now,“c”) 返回值 2006-5-25 14:56:15

y 一年中的第幾天
Format$(Now,“y”) 返回值 145

d 一個月中的第幾天(1-366)
Format$(Now,“d”) 返回值 25

dd 當小於10時前面帶0的天數(01-31)
Format$(“2006-1-7”,“dd”) 返回值 07

ddd 周幾
Format$(Now,“ddd”) 返回值 週四

dddd 星期幾
Format$(Now,“dddd”) 返回值 星期四

ddddd 顯示標準日期
Format$(Now,“ddddd”) 返回值 2006-05-25

dddddd 長日期
Format$(Now,“dddddd”) 返回值 2006年5月25日

w 一個星期中的第幾天
Format$(Now,“w”) 返回值 5

ww 一年中的第幾周
Format$(Now,“ww”) 返回值 21

m 月數(注:當用於時間時,也可以表時為分鐘)
Format ( N o w , &quot; m &quot; ) 5 F o r m a t (Now,&quot;m&quot;) 返回值 5 Format (Now,“h:m”) 返回值 16:11

mm 當小於10時前面帶0的月數(注:當用於時間時,也可以表時為帶0的分鐘)
Format ( N o w , &quot; m &quot; ) 05 F o r m a t (Now,&quot;m&quot;) 返回值 05 Format (Now,“hh:mm”) 返回值 16:09

mmm 月份
Format$(Now,“mmm”) 返回值 五月

q 一年中的第幾季(1-4)
Format$(Now,“q”) 返回值 2

yy 兩位數的年份(00-99)
Format$(Now,“yy”) 返回值 06

yyyy 四位數的年份(0100-9999)
Format$(Now,“yyyy”) 返回值 2006

h 一天中的第N小時(0-23)
Format$(Now,“h”) 返回值 16

hh 當小於10時帶0的小時數(00-23)
Format$(“7:30:28”,“hh”) 返回值 07

n 一小時的分鐘數(0-59)
Format$(“7:30:28”,“n”) 返回值 30

nn 當小於10時帶0的分鐘數(00-59)
Format$(“7:3:28”,“n”) 返回值 03

s 一分鐘中的秒數(0-59)
Format$(“7:30:8”,“s”) 返回值 8

ss 當小於10時帶0的分鐘數(00-59)
Format$(“7:3:8”,“ss”) 返回值 08

ttttt 標準時間,小時數當小於10時不帶0,與h:mm:ss相同
Format$(“7:3:28”,“ttttt”) 返回值 7:03:28

AM/PM 顯示當前為AM或為PM
Format$(Now,“AM/PM”) 返回值 PM

A/P 顯示當前為A或為P
Format$(Now,“A/P”) 返回值 P

AMPM 對0至2359的數值進行判斷是AM還是PM,可以看作是同等於對00:00至23:59的數字進行判斷,如1000可以看作是10:00。
Format$(1000,“AMPM”) 返回值 AM

聯合格式化

m/d/yy Format$(Now,“m/d/yy”) 返回值 5-25-06

d-mmm-yy Format$(Now,“d-mmm-yy”) 返回值 25-5月-06

d-mmmm Format$(Now,“d-mmmm”) 返回值 25-五月

mmmm-yy Format$(Now,“mmmm-yy”) 返回值 五月-06

hh:mm AM/PM Format$(Now,“hh:mm AM/PM”) 返回值 04:50 PM

h:mm:ss a/p Format$(Now,“h:mm:ss a/p”) 返回值 4:51:38 p

h:mm Format$(Now,“h:mm”) 返回值 16:51

h:mm:ss Format$(Now,“h:mm:ss”) 返回值 16:51:38

m/d/yy h:mm Format$(Now,“m/d/yy h:mm”) 返回值 5-25-06 16:54


文字型別的格式化

; 當兩部分時,則第一部分為非空格式化,第二部分為null值或空值的格式化表示式
@ 匹配位置插入格式化文字,佔位位置不存在時,顯示空白(空字串)

只有一個@符號時,是在最後面加上格式化文字
Format$(“CHIN”,"@a") 返回值 CHINa

有多個@佔位符,是按從右至左匹配,並在相應的位置上顯示格式化文字
Format$(“CHIN”,"@[email protected]@") 返回值 CHaIN

當與 ! 配合時,則變為從左至右匹配
Format$(“CHIN”,"@@") 返回值 CaHIN

當佔位符比原文字字串多時,剛在相應位置上新增空格
Format$(“C”,"@@[email protected]") 返回值 空白空白aC

& 字元佔位符。除在當佔位位置不存在時,不顯示外,其餘均與@相同

當佔位符比原文字字串多時,剛在相應位置上新增空格
Format$(“C”,"&&a&") 返回值 aC

< 強制小寫。將所有字元以小寫格式顯示。
Format$(“I love you”,"<") 返回值 i love you

強制大寫。將所有字元以大寫格式顯示。
Format$(“I love you”,">") 返回值 I LOVE YOU

! 強制由左而右填充字元佔位符。預設值是由右而左填充字元佔位符。
Format$(“CHIN”,"@@") 返回值 CaHIN


強制使用中文格式的日期時間

aaaa 星期
Format$(Now,“aaaa”) 返回值 星期五

O 中文月份
Format$(Now,“O”) 返回值 五月

o 單位元組月份
Format$(Now,“o”) 返回值 5月

A 中文日期
Format$(Now,“A”) 返回值 二十六日

a 單位元組日期
Format$(Now,“a”) 返回值 26日

E 短中文年份
Format$(Now,“E”) 返回值 六年

e 單單位元組年份
Format$(Now,“e”) 返回值 6年

EE 中文年份
Format$(Now,“EE”) 返回值 二○○六年

ee 單位元組年份
Format$(Now,“ee”) 返回值 2006年

想不到中文日期的問題就這麼容易解決:
Format$(Now,“EEOA”) 返回值 二○○六年五月二十六日