如何将日期改为中文大写

作者在 2006-06-27 03:07:00 发布以下内容
*FUNCTION CDTOCD
***
*** 日期转换为大写的自定义函数 CDTOCD
***
*** 语法  CDTOCD(cDate1,nMonth,nDay)
***
*** 输入参数cDate1
***       (1)字符型,1个参数或多个参数,只有第1个参数有效
***           14个字符,格式是“YYYY年MM月DD日”或者“YYYY..MM..DD..”(".."可以是任何无关字符)
***           10个字符,格式是“YYYY.MM.DD”(.也可以是任何无关字符)
***           8个字符,格式是“YYYYMMDD”
***       (2)日期型,1个参数或多个参数,只有第1个参数有效
***           任何格式,只要是日期型就可以
***       (3)日期时间型,1个参数或多个参数,只有第1个参数有效
***           日期时间型
***       (4)数值型,1个参数
***           格式"YYYYMMDD",8位整数
***       (5)数值型,3个参数都是数值型
***           格式CDTOCD(YYYY,MM,DD),3个整数
***
*** 输出结果
***       字符型
***
*** 特别说明
***       如果输入参数不是字符型,不是日期型,不是日期时间型,也不是数值型,则返回14个星号(*);
***   如果输入参数是字符型,但没有按规定的格式输入,比如年份写在后面等,返回的结果可能不正确
***
*** 用法:  ?CDTOCD("2006年06月25日")  &&结果为“贰零零陆年零陆月贰拾伍日”
***        ?CDTOCD("2006.06.25")
***        ?CDTOCD("20060625")
***        ?CDTOCD(DATE())  &&显示系统日期的大写方式
***        ?CDTOCD(DATETIME())
***        ?CDTOCD(DTOC(DATE(),1))
***        ?CDTOCD(20060625)  &&显示“贰零零陆年零陆月贰拾伍日”
***        ?CDTOCD(2006,6,25)  &&显示“贰零零陆年零陆月贰拾伍日”
***
PARAMETERS cDate1,nMonth,nDay
PRIVATE cString1,cString2,nYear,nMonth,nDay,I,cDate1
cString1="0123456789"
cString2="零壹贰叁肆伍陆柒捌玖"
* 提取年、月、日信息
DO CASE
  CASE TYPE("cDate1")=CHR(67) AND LEN(cDate1)=14  &&第1个参数是字符型C,14个字符
    nYear=VAL(SUBSTR(cDate1,1,4))
    nMonth=VAL(SUBSTR(cDate1,7,2))
    nDay=VAL(SUBSTR(cDate1,11,2))
  CASE TYPE("cDate1")=CHR(67) AND LEN(cDate1)=10  &&第1个参数是字符型C,10个字符
    nYear=VAL(SUBSTR(cDate1,1,4))
    nMonth=VAL(SUBSTR(cDate1,6,2))
    nDay=VAL(SUBSTR(cDate1,9,2))
  CASE TYPE("cDate1")=CHR(67) AND LEN(cDate1)=8  &&第1个参数是字符型C,8个字符
    nYear=VAL(SUBSTR(cDate1,1,4))
    nMonth=VAL(SUBSTR(cDate1,5,2))
    nDay=VAL(SUBSTR(cDate1,7,2))
  CASE TYPE("cDate1")=CHR(68) OR TYPE("cDate1")=CHR(84)  &&第1个参数是日期型D或日期时间型T
    nYear=YEAR(cDate1)
    nMonth=MONTH(cDate1)
    nDay=DAY(cDate1)
  CASE TYPE("cDate1")=CHR(78) AND (TYPE("nMonth")#CHR(78) OR TYPE("nDay")#CHR(78)) &&第1个参数为数值型N,第2、第3个参数不完全是数值型
    nYear=VAL(SUBSTR(PADL(cDate1,8,"0"),1,4))
    nMonth=VAL(SUBSTR(PADL(cDate1,8,"0"),5,2))
    nDay=VAL(SUBSTR(PADL(cDate1,8,"0"),7,2))
  CASE TYPE("cDate1")=CHR(78) AND TYPE("nMonth")=CHR(78) AND TYPE("nDay")=CHR(78) &&3个参数都是数值型N,分别表示年、月、日
    nYear=cDate1  &&提取年份信息
    IF nY
VFP程序 | 阅读 2707 次
文章评论,共0条
游客请输入验证码
浏览116564次