C#中数字日期转中文日期

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("07-11-05"));
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值