程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#中數字日期轉中文日期

C#中數字日期轉中文日期

編輯:關於C語言

把"2007-11-4"這種數字日期轉換為"二〇〇七年十一月四號"這種中文日期。

using System;
using System.Text;
using System.Text.RegularExpressions;
namespace AndyDateConvert
 {
   class DateConvert
   {
     private static DateConvert m_DateConvert = null;
     private char[] strChinese;
     private DateConvert()
     {
       strChinese = new char[] {
         '〇','一','二','三','四','五','六','七','八','九','十'
       };
     }
     public static DateConvert Instance
     {
       get
       {
         if (m_DateConvert == null)
           m_DateConvert = new DateConvert();
         return m_DateConvert;
       }
     }
     public string Baodate2Chinese(string strDate)
     {
       StringBuilder result = new StringBuilder();
       // 依據正則表達式判斷參數是否正確
       Regex theReg = new Regex(@"(d{2}|d{4})(/|-)(d{1,2})(/|-)(d {1,2})");
       if (theReg.Match(strDate).Length != 0)
       {
         // 將數字日期的年月日存到字符數組str中
         string[] str = null;
         if (strDate.Contains("-"))
         {
           str = strDate.Split('-');
         }
         else if (strDate.Contains("/"))
         {
           str = strDate.Split('/');
         }
         // str[0]中為年,將其各個字符轉換為相應的漢字
         for (int i = 0; i < str[0].Length; i++)
         {
           result.Append(strChinese[int.Parse(str[0][i].ToString ())]);
         }
         result.Append("年");
         // 轉換月
         int month = int.Parse(str[1]);
         int MN1 = month / 10;
         int MN2 = month % 10;
         if (MN1 > 1)
         {
           result.Append(strChinese[MN1]);
         }
         if (MN1 > 0)
         {
           result.Append(strChinese[10]);
         }
         if (MN2 != 0)
         {
           result.Append(strChinese[MN2]);
         }
         result.Append("月");
         // 轉換日
         int day = int.Parse(str[2]);
         int DN1 = day / 10;
         int DN2 = day % 10;
         if (DN1 > 1)
         {
           result.Append(strChinese[DN1]);
         }
         if (DN1 > 0)
         {
           result.Append(strChinese[10]);
         }
         if (DN2 != 0)
         {
           result.Append(strChinese[DN2]);
         }
         result.Append("日");
       }
       else
       {
         throw new ArgumentException();
       }
       return result.ToString();
    }   static void Main(string[] args)
    {
      Console.WriteLine(DateConvert.Instance.Baodate2Chinese("2007 -11-4"));
      Console.WriteLine(DateConvert.Instance.Baodate2Chinese("07- 11-4"));
      Console.WriteLine(DateConvert.Instance.Baodate2Chinese ("2007/11/4"));
      Console.WriteLine(DateConvert.Instance.Baodate2Chinese ("07/11/4"));
    }
  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved