移動項目開發筆記(C#數字日期轉換成中文日期(zt))

來源:互聯網
上載者:User

     項目要從OA公文系統系統做介面開發。需要把項目中的資料產生公文文檔,日期是一個需要轉換的問題,如何把一個日期類型用中文表示。

如:"2008-09-15"轉換成"二〇〇八年九月十五日".

通過在網上尋找,找到一個不錯的演算法。先分享出來給朋友們:感謝原作者無私的奉獻和辛勤的工作成果。謝謝!

原創作者:http://blog.csdn.net/qq317942417/archive/2008/06/06/2518124.aspx

下面是代碼展示:

using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace ConvertDateToChinese
{
    class Convert
    {
        private static Convert instance=null;
        public static Convert Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new Convert();
                   
                }
                return instance;
            }

        }

        public char[] chinese;
        private Convert()
        {
            chinese=new char[]{'0','一','二','三','四','五','六','七','八','九','十'};
        }

        //Method for Convert to Chinese
        public string ConvertMethod(string date)
        {
            // Define stringBuilder variable  for write out the chinese of date
            StringBuilder strb = new StringBuilder();

            //define regex regularExpressins variable
            Regex regex = new Regex(@"(d{2}|d{4})(-|/)(d{1}|d{2})(-|/)(d{1}|d{2})");
            if (!regex.IsMatch(date) == true)
            {
             string[] str=null;
             if (date.Contains("-"))
             {
                 str = date.Split('-');
             }
             else
             {
                 if(date.Contains("/"))
                 {
                     str=date.Split('/');

                 }
             }
                            //Convert year as follow
             for (int i = 0; i < str[0].Length; i++)
             {
                 strb = strb.Append(chinese[int.Parse(str[0][i].ToString())]);
             }
             strb.Append("年");
              
                  //Convert month as follow
            // if (chinese[int.Parse(str[1][0].ToString())] != '0')
            // {
            //     strb.Append(chinese[int.Parse(str[1][0].ToString())]);
            // }
            // for (int i = 1; i < str[1].Length; i++)
            // {
            //     strb = strb.Append(chinese[int.Parse(str[1][i].ToString())]);
            // }
            // strb.Append("月");

            //        //Convert day as follow
            // if (chinese[int.Parse(str[2][0].ToString())] !='0')
            // {
            //     strb.Append(chinese[int.Parse(str[2][0].ToString())]);
            // }
            // for (int i = 1; i < str[2].Length; i++)
            // {
            //     strb = strb.Append(chinese[int.Parse(str[2][i].ToString())]);
            // }
             // strb.Append("日");
             #region  //convert month
             int monthod = int.Parse(str[1]);
                int MN1 = monthod / 10;
                int MN2 = monthod % 10;

                if (MN1 > 1)
                {
                    strb.Append(chinese[MN1]);
                }
                if (MN1 > 0)
                {
                    strb.Append(chinese[10]);
                }
                if (MN2 != 0)
                {
                    strb.Append(chinese[MN2]);
                    strb.Append("月");
                }
             #endregion
             #region //convert day
                int day = int.Parse(str[2]);
                int day1 = day / 10;
                int day2 = day % 10;

                if (day1 > 1)
                {
                    strb.Append(chinese[day1]);
                   
                    
                }
                if (day1 > 0)
                {
                    strb.Append(chinese[10]);
                }
                if (day2 > 0)
                {
                    strb.Append(chinese[day2]);
                    strb.Append("日");
                }
 
                #endregion

            }
               
            else
            {
                throw new ArgumentException();
               
            }
            return strb.ToString();

            

        }
        static void Main(string[] args)
        {
          Console.WriteLine(Convert.Instance.ConvertMethod("08-09-15"));
        }
    }
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.