zoukankan      html  css  js  c++  java
  • C# 将日期转换成中文格式

    没有什么难点,只是要小心,要考虑到月、日上 10 的说法,比如:10 不能直接转换成一〇,也不能像上 20 那样转换成一十〇,应该是十。

    特点总结:

    • 数字为 10 时,结果为十;
    • 数字大于 10 时,十位数字的中文加上“十”。
    • 数字能被 10 整除时,个位数不报。

    根据以上条件可以扩展到百位、千位等,但还会更麻烦,就是中间有多个连续的 0 的时候,应该只报一个零(非日期时一般没用“〇”,而用“零”)。

    考虑日期的特点,为了简化编程,我们将 0-31 这几个数字的中文直接存到数组中。

    namespace Cftea
    {
        public class DateTimeHelper
        {
            public static string ToChinese(DateTime dt)
            {
                string yyyyMMdd = dt.ToString("yyyyMMdd");

                return GetChineseNumber(Convert.ToInt32(yyyyMMdd.Substring(0, 1))) +
                    GetChineseNumber(Convert.ToInt32(yyyyMMdd.Substring(1, 1))) +
                    GetChineseNumber(Convert.ToInt32(yyyyMMdd.Substring(2, 1))) +
                    GetChineseNumber(Convert.ToInt32(yyyyMMdd.Substring(3, 1))) +
                    "年" +
                    GetChineseNumber(Convert.ToInt32(yyyyMMdd.Substring(4, 2))) +
                    "月" +
                    GetChineseNumber(Convert.ToInt32(yyyyMMdd.Substring(6, 2))) +
                    "日";
            }

            private static string GetChineseNumber(int m)
            {
                string[] cns = new string[] {
                "〇", "一", "二", "三", "四", "五", "六", "七", "八", "九",
                "十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九",
                "二十", "二十一", "二十二", "二十三", "二十四", "二十五", "二十六", "二十七", "二十八", "二十九",
                "三十", "三十一"
                };

                return cns[m];
            }
        }
    }

  • 相关阅读:
    Cocos游戏引擎,让小保安成就大梦想
    Android 高仿QQ5.2双向側滑菜单DrawerLayout实现源代码
    Java中字符串相等与大小比較
    Android四大基本组件之 Activity
    C++基础学习教程(五)
    HAWQ技术解析(八) —— 大表分区
    Jenkins 安装与使用--实例
    Android多点触控技术,实现对图片的放大缩小平移,惯性滑动等功能
    Mycat(4):消息表mysql数据库分表实践
    谋哥:《App自推广》开篇之回到远古人类
  • 原文地址:https://www.cnblogs.com/jbps/p/3957499.html
Copyright © 2011-2022 走看看