zoukankan      html  css  js  c++  java
  • .NET下转换日期格式为中文大写

    今天在写代码时遇到一个需要将日期转换为中文大写日期的问题,网上找了找,示例不是很多,只有javascript代码的,以下是这个链接(http://www.cnblogs.com/isme/articles/267043.html),把它转换为C#版贴出来与大家分享

    C#版

    /// <summary>
    /// 功能:YYYY-MM-DD 数字日期转化为汉字
    /// 例:1984-3-7 -> 一九八四年三月七日
    /// 调用:Format("1984-3-7")
    /// </summary>
    public class DateTimeEx
    {
        
    string[] chinese = new string[10] { """""""""""""""""""" };
        
    string seperator = "";
        
    string[] ydm = new string[3] { """""" };

        
    public DateTimeEx()
        {
        }

        
    public string Format(DateTime date)
        {
            
    string result = String.Empty;
            
    //验证输入的日期格式.并提取相关数字.
            if (date != null)
            {
                
    string year = date.Year.ToString();
                
    string month = date.Month.ToString();
                
    string day = date.Day.ToString();

                
    //
                result = Num2Chinese(year);
                
    //
                result += "" + Num2Chinese(month);
                
    //
                result += "" + Num2Chinese(day);
            }
            
    return result;
        }

        
    string Num2Chinese(string s)
        {
            
    //对特殊情况进行处理.
            if (s.Length == 2)
            {
                
    if (s[0].Equals('1'))
                {
                    
    if (s[1].Equals('0'))
                    {
                        
    return seperator;
                    }
                    
    return seperator + chinese[Int32.Parse(s[1].ToString())];
                }

                
    if (s[1].Equals('0'))
                {
                    
    return chinese[Int32.Parse(s[0].ToString())] + seperator;
                }
                
    return chinese[Int32.Parse(s[0].ToString())] + seperator + chinese[Int32.Parse(s[1].ToString())];
            }
            
    return Num2Char(s);
        }

        
    string Num2Char(string s)
        {
            
    //将单个数字转成中文.
            int slen = s.Length;
            var result 
    = String.Empty;
            
    for (var i = 0; i < slen; i++)
            {
                result 
    += chinese[Int32.Parse(s[i].ToString())];
            }
            
    return result;
        }
    }

    顺便把原Javascript版贴来

    JavaScript版
    <script>
    /*
      功能:YYYY-MM-DD 数字日期转化为汉字
      例:1984-3-7 -> 一九八四年三月七日
      调用:baodate2chinese("1984-3-7")
    */
    var chinese = ['','','','','','','','','',''];
    var len = [''];
    var ydm =['','',''];
    function num2chinese(s)
    {
        
    //将单个数字转成中文.
        s=""+s;
        slen 
    = s.length;
        
    var result="";
        
    for(var i=0;i<slen;i++)
        {
            result
    +=chinese[s.charAt(i)];
        }
         
    return result;
    }

    function n2c(s)

        
    //对特殊情况进行处理.
        s=""+s;
        
    var result="";
        
    if(s.length==2)
        {
             
    if(s.charAt(0)=="1")
             {
                
    if(s.charAt(1)=="0")return len[0];
                
    return len[0]+chinese[s.charAt(1)];
              }
         
    if(s.charAt(1)=="0")return chinese[s.charAt(0)]+len[0];
            
    return chinese[s.charAt(0)]+len[0]+chinese[s.charAt(1)];
         }
         
    return num2chinese(s)
    }
    function baodate2chinese(s)
    {
         
    //验证输入的日期格式.并提取相关数字.
         var datePat = /^(\d{2}|\d{4})(\/|-)(\d{1,2})(\2)(\d{1,2})$/
         var matchArray = s.match(datePat); 
         
    var ok="";
         
    if (matchArray == nullreturn false;
         
    for(var i=1;i<matchArray.length;i=i+2)
         {
             ok
    +=n2c(matchArray[i]-0)+ydm[(i-1)/2];
         }
     
    return ok;
    }
    </script>
    YYYY-MM-DD:
    <input type=text name="mydate" value="1984-3-7">
    中文显示:
    <input type=text name="okdate">
    <input type=button onclick="document.all.okdate.value=baodate2chinese(document.all.mydate.value)"
    value
    ="转换"> 
  • 相关阅读:
    关于js计算非等宽字体宽度的方法
    [NodeJs系列]聊一聊BOM
    Vue.js路由管理器 Vue Router
    vue 实践技巧合集
    微任务、宏任务与Event-Loop
    事件循环(EventLoop)的学习总结
    Cookie、Session和LocalStorage
    MySQL 树形结构 根据指定节点 获取其所在全路径节点序列
    MySQL 树形结构 根据指定节点 获取其所有父节点序列
    MySQL 创建函数报错 This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators
  • 原文地址:https://www.cnblogs.com/andy65007/p/1630732.html
Copyright © 2011-2022 走看看