const
  chdate = '%d年%d月%d日'var
  wYear, wMon, wDay: word;
  ss: string;
begin
  decodedate(date, wYear, wMon, wDay);
  ss := Format(chdate,[wYear, wMon, wDay]);
end;

解决方案 »

  1.   


    const
      chdate = '%s年%s月%s日';
    var
      wYear, wMon, wDay: word;
      ss: string;
    begin
      decodedate(date, wYear, wMon, wDay);
      ss := Format(chdate,[numtocchar(wYear), numtocchar(wMon),numtocchar(wDay)]);
    end;
    function numtocchar(svar:integer):string;
    var
      tempstr:string;
      i:integer;
    begin
      result:='';
      tempstr:=inttostr(svar);
      for i:=1 to length(tempstr) do
      begin
        result:=result+nchar(tempstr[i]);
      end;
    end;
    function nchar(svar:string):string;
    begin
    if svar='1' then result:='一'
    else if svar='2' then result:='二'
    else if svar='3'  then result:='三'
    else if svar='4' then  result:='四'
    else if svar='5' then  result:='五'
    else if svar='6'  then result:='六'
    else if svar='7'  then result:='七'
    else if svar='8'  then result:='八'
    else if svar='9'  then result:='九'
    else result:=svar;
    end;说明:ss就是你所要的了。
      

  2.   

    有必要吗?
    如果有那就:
    const
      chdate = '%s年%s月%s日'
      Nums : Array[0..31]of string[4]=('O','一','二'....'十二'...'三十一')
    var
      wYear, wMon, wDay: word;
      sY,sM,sD: string;
      ss : string;
      i : integer;
    begin
      decodedate(date, wYear, wMon, wDay);
      ss := IntToStr(wYear);
      for i=1 to Length(ss) do
        sY := sY+Nums[ord(ss[i])-ord('0')];
      sM := Nums[wMon];
      sD := Nums[wDay];
      ss := Format(chdate,[sY, sM, sD]);
    end;
      

  3.   

    上面错了,String[4]不够长!
    Nums : Array[0..31]of string[6]=('O','一','二'....'十二'...'三十一')
      

  4.   

    楼上应该是这样
    Nums : Array[0..31]of string[32]=('O','一','二'....'十二'...'三十一')