zoukankan      html  css  js  c++  java
  • 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"));
           
    }
        }
    }

  • 相关阅读:
    [国家集训队]墨墨的等式(同余最短路)
    [洛谷P2575]高手过招
    [CSP校内集训]rank
    杀人游戏(tarjan思维好题)
    骑士游戏(spfa好题)
    机房模拟测试4:计数类dp+水题+树上计数
    机房测试模拟2:模拟+数学+数位dp
    机房测试11:最小生成树(最小生成树+二分)
    机房测试模拟1(day2):矩阵+树上贪心+bfs+状压
    机房测试16:字符串专题(AC自动机+dp+kmp)
  • 原文地址:https://www.cnblogs.com/angels/p/2790832.html
Copyright © 2011-2022 走看看