//项目中总是遇到一些把字符串日期转换成中文日期,每次都自己去写个方法,虽然没啥技术含量,但是工作很是繁琐,所以在这里把代码贴出供大家参考
//=====================================================================
// 苏州塔西亚软件有限公司
// 创建人: Aple QQ群:71436018
// 日 期: 2010-07-04
// 描 述: 字符串日期转换成中文日期
// 修改人:
// 日 期:
// 版 本: 1.0.0.0
//=====================================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace TestFunTion
{
class Program
{
static void Main(string[] args)
{
string a = "2010-12-12";
Console.WriteLine( DateConvert(a));
Console.ReadKey();
}
/// <summary>
/// 把字符串日期转换成相应的 中文日期
/// </summary>
/// <param name="date">字符串日期</param>
/// <returns>中文日期</returns>
public static string DateConvert(string date)
{
StringBuilder result = new StringBuilder();
Regex theReg = new Regex("(//d{2}|//d{4})(/|-)(//d{1,2})(/|-)(//d{1,2})");
if (theReg.IsMatch(date))
{
string[] str = null;
if (date.Contains("-"))
{
str = date.Split('-');
}
else if (date.Contains("/"))
{
str = date.Split('/');
}
// str[0]中为年,将其各个字符转换为相应的汉字
for (int i = 0; i < str[0].Length; i++)
{
result.Append(strChinese(int.Parse(str[0][i].ToString())));
}
result.Append("年");
// str[1]中为月,将其各个字符转换成相应的汉字
int month = int.Parse(str[1]);
int MN1 = month / 10;
int MN2 = month % 10;
if (MN1 == 1)
{
result.Append("十");
}
if (MN1 == 0)
{
result.Append(strChinese(10));
}
if (MN2 != 0)
{
result.Append(strChinese(MN2));
}
result.Append("月");
//str[2]中为日,将其各个字符转换成相应的汉字
int day = int.Parse(str[2]);
int DN1 = day / 10;
int DN2 = day % 10;
if (DN1 > 1)
{
result.Append(strChinese(DN1) + "十");
}
if (DN1 == 1)
{
result.Append("十");
}
if (DN2 != 0)
{
result.Append(strChinese(DN2));
}
result.Append("日");
return result.ToString();
}
else
{
return "日期格式错误!";
}
}
/// <summary>
/// 把阿拉伯数字转换成中文数字
/// </summary>
/// <param name="nub">阿拉伯数字</param>
/// <returns>中文数字</returns>
public static string strChinese(int nub)
{
string[] arr = new string[] { "〇", "一", "二", "三", "四", "五", "六", "七", "八", "九" };
string str = "";
switch (nub)
{
case 0:
str = arr[0];
break;
case 1:
str = arr[1];
break;
case 2:
str = arr[2];
break;
case 3:
str = arr[3];
break;
case 4:
str = arr[4];
break;
case 5:
str = arr[5];
break;
case 6:
str = arr[6];
break;
case 7:
str = arr[7];
break;
case 8:
str = arr[8];
break;
case 9:
str = arr[9];
break;
}
return str;
}
}
}