在DELPHI中没有直接将日期转化为汉语的形式,用起来很不方便,如:“2001年5月23日”在一些特殊场合需要转化为汉语,“二○○一年五月二十三日”
在这里有一个函数可以直接进行转化,在这里和大家共享,原代码如下:
procedure datechange(var Dyear, Dmonth,Dday:string;
const ADate:Tdatetime); //转化日期
function DCDate(ADate:TDateTime):TDDate;//将时间转化为汉字形式
function DCmonth(DMonth:string):string; //将月转化为汉字形式
function DCDay(DDay:string):string; //将日转化为汉字形式
function DCYear(Dyear:string):string; //将年转化为汉字形式
implementation
//以下是实现部分。
procedure datechange(var Dyear, Dmonth,Dday:string;
const ADate:Tdatetime);
begin
Dyear:=formatdatetime(''yyyy'',Adate);
Dmonth:=formatdatetime(''mm'',Adate);
Dday:=formatdatetime(''dd'',Adate);
end;
function TDWF.DCDate(ADate: TDateTime):TDDate;
var kk:TDdate;
sY,sM,sD:string;
begin
datechange(sy,sm,sd,Adate);
kk.year :=dcyear(sy);
kk.month :=DCmonth(sm);
kk.day:=DCday(sd);
result:=kk;
end;
function TDWF.DCDay(DDay: string): string;
const CDDay:array[1..31] of string=(
''一'',''二'',''三'',''四'',''五'',''六'',''七'',''八'',''九'',''十'',''十一'',
''十二'',''十三'',''十四'',''十五'',''十六'',''十七'',''十八'',''十九'',
''二十'',''二十一'',''二十二'',''二十三'',''二十四'',''二十五'',''二十六'',
''二十七'',''二十八'',''二十九'',''三十'',''三十一''); //日期的汉语表示
var dd:integer;
begin
dd:=strtoint(DDay);
result:=cdday[dd];
end;
function TDWF.DCmonth(DMonth: string): string;
const CDmonth:array[1..12] of string=(
''一'',''二'',''三'',''四'',''五'',''六'',''七'',''八'',''九'',''十'',
''十一'',''十二''); //月份的汉语表示
var dm:integer;
begin
dm:=strtoint(DMonth);
result:=cDmonth[dm];
end;
function TDWF.DCYear(Dyear: string): string;
const CDdigit:array[0..9] of string=(
''○'',''一'',''二'',''三'',''四'',''五'',''六'',''七'',''八'',''九''); //数字的汉字表示
var dh,dg,i:integer;
&