使得民國 100 年變成了「00」
可以使用以下的公式來處理 (Crystal 語法)
2012/03/06 更新:原先的版本沒有考慮到 null 的問題,改成以下這樣
if (aDate >= CDate('1899/12/31')) then
Trim(CStr(Year(aDate) - 1911, '#00')) + '/' + CStr(Month(aDate), '00') + '/' + CStr(Day(aDate), '00')
else
''
//========================================= // 數字轉中文大寫 //========================================= // 要轉換的數字 NumberVar VNT := (你要轉換的數字欄位); StringVar VSU := '零壹貳參肆伍陸柒捌玖'; StringVar VST := '仟佰拾兆仟佰拾億仟佰拾萬仟佰拾元'; StringVar VNS := ToText(VNT, '0000000000000000'); NumberVar VSL := 17 - Length(TrimLeft(ToText(VNT, '################'))); StringVar VSS := ''; BooleanVar VSF; BooleanVar VS0; BooleanVar VS1; BooleanVar VS2; NumberVar VNI; VSF := False; for VNI := VSL to 16 do ( VS1 := Mid(VNS, VNI, 1) <> '0'; VS2 := VS1 or (((VNI mod 4) = 0) and ((Mid(VNS, VNI - 3, 4) <> '0000') or (VNI = 16))); VS0 := VSF and VS1; VSF := not (VS0 or VS1 or VS2); if VS0 then VSS := VSS + '零'; if VS1 then VSS := VSS + Mid(VSU, ToNumber(Mid(VNS, VNI, 1)) + 1, 1); if VS2 then VSS := VSS + Mid(VST, VNI, 1); ); // 這是回傳值 VSS;