在网站应用中有时会用到将日期格式转为大写汉字,比如: “2016年10月8日” 转换成 “贰零壹陆年拾月捌日”,下面一起来看看怎么实现。
//年份转换为大写汉字
public static string numtoUpper(int num)
{
return "零壹贰叁肆伍陆柒捌玖"[num].ToString();
}
//月份转换大写汉字
public static string monthtoUpper(int month)
{
if (month < 10)
{
return numtoUpper(month);
}
else
{
if (month == 10) { return "壹拾"; }
else
{
return "壹拾" + numtoUpper(month - 10);
}
}
}
//日期转化为大写汉字
public static string daytoUpper(int day)
{
if (day < 20)
{
return monthtoUpper(day);
}
else
{
String str = day.ToString();
if (str[1] == '0')
{
return numtoUpper(Convert.ToInt16(str[0].ToString())) + "拾";
}
else
{
return numtoUpper(Convert.ToInt16(str[0].ToString())) + "拾"
+ numtoUpper(Convert.ToInt16(str[1].ToString()));
}
}
}
static void Main(string[] args)
{
string year = "2013";
string retur = string.Empty;
for (int i = 0; i < year.Length; i++)
{
retur += numtoUpper(int.Parse(year[i].ToString())).ToString();
}
Console.WriteLine(retur + " 年");
retur = string.Empty;
string month = "12";
retur = monthtoUpper(Convert.ToInt32(month));
Console.WriteLine(retur + " 月");
string day = "3";
retur = daytoUpper(Convert.ToInt32(day));
Console.WriteLine(retur + " 日");
Console.ReadLine();
}