最近再写一个C#的项目,需输出汉字日期,网上翻了一圈发现写的都比较麻烦。
所以结合网上将数字转换为汉字大写金额的正则,写了个日期转换函数。
public static String ConvertToChineseLite(Decimal number)
{
//将数字转化为汉字
var s = number.ToString("#L#E#D#C#K#E#D#C#J#E#D#C#I#E#D#C#H#E#D#C#G#E#D#C#F#E#D#C#");
var d = Regex.Replace(s, @"((?<=-|^)[^1-9]*)|((?'z'0)[0A-E]*((?=[1-9])|(?'-z'(?=[F-L\.]|$))))|((?'b'[F-L])(?'z'0)[0A-L]*((?=[1-9])|(?'-z'(?=[\.]|$))))", "${b}${z}");
if (number > 100) d = Regex.Replace(d, "[^0-9]+", ""); //修饰年
var r = Regex.Replace(d, ".", m => "空空空〇一二三四五六七八九空空空空空空空空空十百千万亿兆京垓秭穰"[m.Value[0] - '-'].ToString());
if (Math.Floor(number / 10) == 1) r = r.Substring(1, r.Length - 1); //修饰十位为1的情形
return r;
}
public static String Convert2ChineseDate(DateTime dt)
{
string y = ConvertToChineseLite(dt.Year);
string m = ConvertToChineseLite(dt.Month);
string d = ConvertToChineseLite(dt.Day);
return y + "年" + m + "月" + d + "日";
}
本文分享了一个实用的C#代码片段,用于将日期转换为汉字格式,通过自定义函数实现数字到汉字的大写金额转换,进而组合成完整的汉字日期。此方法简洁高效,适用于需要在C#项目中输出汉字日期的场景。
765

被折叠的 条评论
为什么被折叠?



