支票日期大写转换

来源:互联网 发布:慈溪创诚网络 编辑:程序博客网 时间:2024/04/30 00:26

 Clear
?Date2Chinese({^2010-6-4},"yyyymmdd")
?Date2Chinese({^2009-01-15},"yyyymmdd")
?Date2Chinese({^2009-10-20},"yyyymmdd")
 
*!* ====================================================
*!* 作 用:支票日期大写转换
*!* 语 法:Date2Chinese(d日期,c输出格式)
*!* 参数说明:d日期:日期型日期格式,如 2010/06/04或 2010-6-4; c输出格式:字符型,yyyymmdd输出年月日,mm输出月,dd输出日
*!* 返 回 值:字符型
*!* 作 者:十豆三,感谢网友 dragon_zone(本函数通过参考dragon_zone的代码后优化而来)
*!* 日 期:2010-06-04
*!* 参考网页:http://hi.baidu.com/dragon_zone/blog/item/6ee6a544edd36383b3b7dc40.html
*!* ====================================================
Function Date2Chinese(tdDate,tcFormat)
    * 票据的出票日期必须使用中文大写。为防止变造票据的出票日期;
    * 在填写月、日时,月为壹、贰和壹拾的,日为壹至玖和壹拾、贰拾和叁拾的,应在其前加“零”;
    * 日为拾壹至拾玖的,应在其前加“壹”。如1月15日,应写成零壹月壹拾伍日。再如10月20日,应写成零壹拾月零贰拾日。
    Local num(10),lnYear,lnMonth,lnDay,lcYear,lcMonth,lcDay
    num(1)="零"
    num(2)="壹"
    num(3)="贰"
    num(4)="叁"
    num(5)="肆"
    num(6)="伍"
    num(7)="陆"
    num(8)="柒"
    num(9)="捌"
    num(10)="玖"


    lnYear=
Year(tdDate)
    lnMonth=
Month(tdDate)
    lnDay=
Day(tdDate)


    *转换年
    lcYear=num(lnYear/1000+1)+num(Mod(lnYear/100,10)+1)+num(Mod(lnYear/10,10)+1)+num(Mod(lnYear,10)+1)


    *转换月
    If lnMonth>=10
        If lnMonth=10
            lcMonth="零壹拾"
        Else
            lcMonth="壹拾"+num(Mod(lnMonth,10)+1)
        Endif
    Else
        If
lnMonth=1 Or lnMonth=2
            lcMonth="零"+num(
Mod(lnMonth,10)+1)
        Else
            lcMonth=num(Mod(lnMonth,10)+1)
        Endif
    Endif


    *转换日
    If lnDay>=10
        If lnDay=10 Or lnDay=20 Or lnDay=30
            lcDay="零"+num(lnDay/10+1)+"拾"
        Else
            lcDay=num(lnDay/10+1)+"拾"+num(Mod(lnDay,10)+1)
        Endif
    Else
        lcDay="零"+num(Mod(lnDay,10)+1)
   
Endif
 

    Do Case
        Case
tcFormat="yyyymmdd"
            Date2Chinese=lcYear+"年"+lcMonth+"月"+lcDay+"日"
       
Case tcFormat="yyyy"
            Date2Chinese=lcYear
       
Case tcFormat="mm"
            Date2Chinese=lcMonth
   
    Case tcFormat="dd"
            Date2Chinese=lcDay
   
Endcase


    Return
Date2Chinese
Endfunc
 

 
* ---------------------------------------
作者:cb518
Function Date2Chinese(dates)
    Return Chrtranc(Strconv(Padl(dates,4," ")+"年"+Stuffc(Iif(Inlist(Month(dates),1,2,10),"0","")+Trim(Transform(Month(dates)),1,"0")+"月",Iif(Inlist(Month(dates),1,2,10),3,2),0,Iif(Month(dates)>9,"拾",""))+Stuffc(Iif(Inlist(Day(dates),10,20,30) Or Day(dates)<10,"0","")+Trim(Transform(Day(dates)),1,"0")+"日",Iif(Inlist(Day(dates),10,20,30) Or Day(dates)<10,3,2),0,Iif(Day(dates)>9,"拾","")),1),Strconv("0123456789",1) ,"零壹贰叁肆伍陆柒捌玖")
Endfunc


* ---------------------------------------
作者:hahatmp123
Clear
?hz_date(Date())
?hz_date({^2009-01-15})
?hz_date({^2009-10-20})
?hz_date({^2009-11-10})
 
Function hz_date
   
Lparameters mdate
    cstr1="0123456789"
    cstr2="零壹贰叁肆伍陆柒捌玖"
    myear=
Alltrim(Str(Year(mdate)))
    mmont=
Alltrim(Str(Mont(mdate)))
    mday=
Alltrim(Str(Day(mdate)))
    cyear=
Chrtranc(myear,cstr1,cstr2)+"年"
   
Cmont=Iif(Len(mmont)=1,"零"+Chrtranc(mmont,cstr1,cstr2),Iif(Substr(mmont,2,1)="0","零"+Substrc(Chrtranc(mmont,cstr1,cstr2),1,1)+"拾",Substrc(Chrtranc(mmont,cstr1,cstr2),1,1)+"拾"+Substrc(Chrtranc(mmont,cstr1,cstr2),2,1)))+"月"
    cday=
Iif(Len(mday)=1,"零"+Chrtranc(mday,cstr1,cstr2),Iif(Substr(mday,2,1)="0","零"+Substrc(Chrtranc(mday,cstr1,cstr2),1,1)+"拾",Substrc(Chrtranc(mday,cstr1,cstr2),1,1)+"拾"+Substrc(Chrtranc(mday,cstr1,cstr2),2,1)))+"日"
    cdate=cyear+
Cmont+cday
   
Return cdate
Endfunc

原创粉丝点击