日期转中文

 

Code
 /// <summary>
        
/// 日期转中文
        
/// </summary>
        
/// <param name="oldDate"></param>
        
/// <returns></returns>
        public static string ChineseDate(DateTime oldDate)
        {
            
string year = oldDate.Year.ToString();
            
string month = oldDate.Month.ToString();
            
string day = oldDate.Day.ToString();
            
string newYear = string.Empty;
            Hashtable ht 
= new Hashtable();
            ht.Add(
"0""0");
            ht.Add(
"1""");
            ht.Add(
"2""");
            ht.Add(
"3""");
            ht.Add(
"4""");
            ht.Add(
"5""");
            ht.Add(
"6""");
            ht.Add(
"7""");
            ht.Add(
"8""");
            ht.Add(
"9""");
            
//获取年部分
            foreach (char item in year.ToCharArray())
            {

                newYear 
+= ht[item.ToString()].ToString();
            }
            
return string.Format("{0}年{1}月{2}日", newYear, TransMonthDay(month, ht), TransMonthDay(day, ht));

        }
        
private static string TransMonthDay(string monthOrDay, Hashtable ht)
        {
            
int md;
            
if (monthOrDay.Length > 1 && monthOrDay.IndexOf("0"!= 0)
            {
                md 
= int.Parse(monthOrDay.Substring(01)) * 10 + int.Parse(monthOrDay.Substring(11));
            }
            
else
            {
                md 
= int.Parse(monthOrDay);

            }

            
if (md >= 10)
            {
                
decimal r = md / 10;
                
int d = md % 10;

                
return string.Format("{0}十{1}", ht[System.Math.Floor(r).ToString()].ToString() == "" ? "" : ht[System.Math.Floor(r).ToString()].ToString(),
                                     d 
== 0 ? "" : ht[d.ToString()].ToString());
            }
            
else
            {

                
return ht[monthOrDay].ToString();
            }

        }

 

 

posted @ 2009-03-20 09:33  koolay  阅读(151)  评论(0)    收藏  举报