LotusFans Forum | Lotus 爱好者论坛  

返回   LotusFans Forum | Lotus 爱好者论坛 > Lotus技术讨论区 > Lotus Designer 设计与开发


Lotus Designer 设计与开发 交流开发心得,共创莲花前景。

回复
 
主题工具 显示模式
旧 2006-07-11, 09:35 PM   #1
月影无限
白银评鉴
 
月影无限 的头像
 
注册日期: 2005-12-07
住址: 地狱
帖子: 460
声望力: 10
月影无限 的星途闪耀月影无限 的星途闪耀月影无限 的星途闪耀月影无限 的星途闪耀月影无限 的星途闪耀月影无限 的星途闪耀
[分享]Format用法详解

以前一直自已为能写了一个中文日期的CLASS很了不起,也在论坛中发表了,可。。。
前几天在查Format函数时,发现format竞可以很轻松的达到这个目的,倒~~~~
Format$(Now,"EEOA")
只要这么一句~~~~~就可以得到“ 二○○六年五月二十六日
亏我还得写得那么多。。。
所以对FORMAT函数进行研究,参照HELP文件,把一些用法写了下来。
现拿给大家共享。。。

---------------------------------
Format[$] ( expr [ , fmt ] )
format 返回变体型
format$ 强制返回为文本
--------------------------------
数字类型的格式化
--------------------------------

固定格式参数:
General Number 普通数字,如可以用来去掉千位分隔号
format$("100,123.12","General Number") 返回值 100123.12

Currency 货币类型,可添加千位分隔号和货币符号
format$("100123.12","Currency") 返回值 ¥100,123.12

Fixed 格式为带两位小数的数字
format$("100123","Currency") 返回值 100123.00

Standard 标准,即带千位分隔号和两位小数
format$("100123","Currency") 返回值 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$("10.23","0.00%") 返回值 1023.00%
format$("10.23","0.00%%") 返回值 102300.00%%

, 以千为单位格化
format$("10.23",",") 返回值 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","$0.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,"0.00;abc") 返回值 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$(Now,"m") 返回值 5
Format$(Now,"h:m") 返回值 16:11

mm 当小于10时前面带0的月数(注:当用于时间时,也可以表时为带0的分钟)
Format$(Now,"m") 返回值 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","@a@@") 返回值 CHaIN

当与 ! 配合时,则变为从左至右匹配
Format$("CHIN","!@a@@") 返回值 CaHIN

当占位符比原文本字符串多时,刚在相应位置上添加空格
Format$("C","@@a@") 返回值 空白空白aC

& 字符占位符。除在当占位位置不存在时,不显示外,其余均与@相同

当占位符比原文本字符串多时,刚在相应位置上添加空格
Format$("C","&&a&") 返回值 aC

< 强制小写。将所有字符以小写格式显示。
Format$("I love you","<") 返回值 i love you

> 强制大写。将所有字符以大写格式显示。
Format$("I love you",">") 返回值 I LOVE YOU

! 强制由左而右填充字符占位符。缺省值是由右而左填充字符占位符。
Format$("CHIN","!@a@@") 返回值 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") 返回值 二○○六年五月二十六日

[ 本帖最后由 月影无限 于 2006-7-11 09:37 PM 编辑 ]

Comments on this post
恋猪明 +++: 嘿嘿 月影也被蒙了一次!
月影无限 当前离线   回复时引用此帖
旧 2006-07-11, 09:44 PM   #2
长颈叔叔
超级版主
 
长颈叔叔 的头像
 
注册日期: 2004-12-10
住址: 火星
帖子: 4,487
文章: 3
声望力: 15
长颈叔叔 的星途闪耀长颈叔叔 的星途闪耀长颈叔叔 的星途闪耀长颈叔叔 的星途闪耀长颈叔叔 的星途闪耀长颈叔叔 的星途闪耀
补充一下,中文系统下的显示方式,由操作系统决定,像Windows则在区域选项中的日期格式中设置。
__________________
用Tab + Enter可以快速发帖。

PM/短消息仅作联系之用,俺也需要点私人时间,有问题请在论坛中提问,PM/短消息中提问一概不复。
长颈叔叔 当前离线   回复时引用此帖
旧 2006-07-11, 09:45 PM   #3
空空空
版主
 
空空空 的头像
 
注册日期: 2006-02-20
帖子: 1,419
声望力: 13
空空空 有着人尽皆知的贡献和荣耀空空空 有着人尽皆知的贡献和荣耀空空空 有着人尽皆知的贡献和荣耀空空空 有着人尽皆知的贡献和荣耀空空空 有着人尽皆知的贡献和荣耀空空空 有着人尽皆知的贡献和荣耀空空空 有着人尽皆知的贡献和荣耀
Format 是一个非常有用的函数,月影讲的实在太仔细了,谢谢了!
空空空 当前离线   回复时引用此帖
旧 2006-07-11, 10:31 PM   #4
imzh
白银会员
 
注册日期: 2005-09-07
住址: 北京
帖子: 464
声望力: 7
imzh 身上有一圈迷人的光环哦imzh 身上有一圈迷人的光环哦imzh 身上有一圈迷人的光环哦
月影讲的实在太仔细了,谢谢了!
我有个经历与你类似:我曾在EXCEL设置单元格的公式,用@IF嵌套了6、7层求出了中文星期几,后来才发现在单元格属性中的格式就搞定了,呵呵
imzh 当前离线   回复时引用此帖
旧 2006-07-12, 09:52 AM   #5
盗亦有道
贡献会员
 
注册日期: 2006-06-21
住址: 南京
帖子: 140
声望力: 6
盗亦有道 是一个将要出名的人盗亦有道 是一个将要出名的人
月影发的东西真的太有用了,收藏,谢谢!
盗亦有道 当前离线   回复时引用此帖
旧 2006-07-12, 10:14 AM   #6
shuor
贡献会员
 
注册日期: 2005-11-22
帖子: 308
声望力: 6
shuor 是一个将要出名的人shuor 是一个将要出名的人
月影,好久没有见到你了。顶你
shuor 当前离线   回复时引用此帖
旧 2006-07-12, 10:50 AM   #7
恋猪明
小小猪头版主
 
恋猪明 的头像
 
注册日期: 2006-04-18
住址: 上海,北京
帖子: 1,814
声望力: 11
恋猪明 已经是超级明星了恋猪明 已经是超级明星了恋猪明 已经是超级明星了恋猪明 已经是超级明星了恋猪明 已经是超级明星了恋猪明 已经是超级明星了
非常好。。。。。。。收下了。。。。。。。
__________________
如果您觉得我的帖子有用,请点击我头像下边的评分按钮评分。
恋猪明个人Blog,欢迎大家访问:http://darrenliucn.blog.163.com (欢迎添加收藏夹)
恋猪明 当前离线   回复时引用此帖
旧 2006-07-12, 11:42 AM   #8
梦中的风铃
E级评鉴
 
注册日期: 2005-05-09
住址: 厦门
帖子: 363
声望力: 9
梦中的风铃 即将成为的新星梦中的风铃 即将成为的新星梦中的风铃 即将成为的新星梦中的风铃 即将成为的新星
不错..收下先..TKS
梦中的风铃 当前离线   回复时引用此帖
旧 2006-07-12, 03:09 PM   #9
ljx232_314
贡献会员
 
注册日期: 2006-05-16
帖子: 52
声望力: 6
ljx232_314 是一个将要出名的人ljx232_314 是一个将要出名的人
好东西!!先收藏

真是好东西,大公无私
ljx232_314 当前离线   回复时引用此帖
旧 2006-07-13, 04:46 PM   #10
jenky
初级会员
 
注册日期: 2006-07-12
帖子: 5
声望力: 0
jenky 是普普通通的会员
thanks for share
jenky 当前离线   回复时引用此帖
旧 2006-07-14, 08:49 PM   #11
sallysmile
初级会员
 
注册日期: 2006-04-18
住址: 江苏
帖子: 9
声望力: 0
sallysmile 是普普通通的会员
谢谢月影!!! 这么详细,EXCEL也可以参考着用,真的太好了
sallysmile 当前离线   回复时引用此帖
旧 2006-07-30, 09:57 PM   #12
chen_hua790618
贡献会员
 
注册日期: 2006-06-26
帖子: 64
声望力: 6
chen_hua790618 是一个将要出名的人chen_hua790618 是一个将要出名的人
太感谢了,我正需要!
chen_hua790618 当前离线   回复时引用此帖
旧 2006-08-03, 03:19 PM   #13
steffens
贡献会员
 
注册日期: 2006-08-02
帖子: 51
声望力: 6
steffens 是一个将要出名的人steffens 是一个将要出名的人
好啊好啊!收藏了先.
steffens 当前离线   回复时引用此帖
旧 2006-08-04, 11:36 AM   #14
yexiaofeng
初级会员
 
注册日期: 2006-08-04
帖子: 7
声望力: 0
yexiaofeng 是普普通通的会员
好东西.多谢实在是辛苦了

好东西.多谢实在是辛苦了
yexiaofeng 当前离线   回复时引用此帖
旧 2006-08-08, 09:02 AM   #15
wbl1984
高级会员
 
注册日期: 2005-11-30
帖子: 378
声望力: 6
wbl1984 是一个将要出名的人wbl1984 是一个将要出名的人
收藏先,肯定会有用上的时候:)
wbl1984 当前离线   回复时引用此帖
回复

书签

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码

论坛跳转


所有时间均为北京时间。现在的时间是 03:55 PM


Powered by vBulletin® 版本 3.8.1
版权所有 ©2000 - 2010,Jelsoft Enterprises Ltd.
Copyright 2004 - 2008 LotusFans.comAd Management by RedTyger