没有什么难点,只是要小心,要考虑到月、日上 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];
        }
    }
}

C# 将日期转换成中文格式的更多相关文章

  1. timestamp 正常日期转换成时间戳格式

    select cast(sysdate as timestamp) "DATE" from dual select to_timestamp(to_date(sysdate, 'y ...

  2. SqlServer把日期转换成不同格式的字符串的函数大全

    SQL语句                                        结果SELECT CONVERT(varchar(100), GETDATE(), 0)-- 05 03 20 ...

  3. jquery将日期转换成指定格式的字符串

    引用jquery文件,如<script type="text/javascript" src="jquery-1.8.3.min.js"></ ...

  4. excel转换日期格式,将yyyymmdd类型日期转换成yyyy-mm-dd等日期类型方法

    源数据日期格式:例如: 20160420 20160422 目标日期格式类型: 2016-4-20 2016-4-22 或 2016/04/20 2016/04/22 方法: 一.选中相应数据的单元格 ...

  5. 分别用Excel和python进行日期格式转换成时间戳格式

    最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...

  6. javascript时间戳转换成指定格式的日期

    //时间戳转换成指定格式的日期DateTool.IntDatetimeTo = function(time, format){    var testDate = new Date(time);    ...

  7. 在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文

    在eclipse中安装properties插件PropertiesEditor及设置(附图),ASCII码转换成中文安装成功后ASCII还是不能转换成中文的,原因是设置里面没有把编码设置为utf8的, ...

  8. 将文本(lrc,txt)文件转换成UTF-8格式

    UTF-8是UNICODE的一种变长字符编码又称万国码,由Ken Thompson于1992年创建.现在已经标准化为RFC 3629.UTF-8用1到6个字节编码UNICODE字符.用在网页上可以同一 ...

  9. dos2unix命令 – 将DOS格式的文本文件转换成UNIX格式

    今天做题的时候,出现了个很冷门的: 查找子目录src下所有后缀为.txt的文件执行dos2unix命令,把文件从Dos格式转换为Linux格式,正确的命令是:find src "*.txt& ...

随机推荐

  1. opencv官网

    http://wiki.opencv.org.cn/index.php/Template:Doc

  2. Android-----使用Button特效 selector+shape

    当然除了使用drawable这样的图片外今天谈下自定义图形shape的方法,对于Button控件Android上支持以下几种属性shape.gradient.stroke.corners等. 我们就以 ...

  3. TP复习5

    ## ThinkPHP 3.1.2 查询方式#讲师:赵桐正微博:http://weibo.com/zhaotongzheng 本节课大纲:一.普通查询方式 a.字符串 $arr=$m->wher ...

  4. crm2011创建货币Money类型的字段

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Xrm.Sdk.Messages;     using Microsoft ...

  5. javascript 基本数据类型

    1. javascript 五种基本数据类型  Undefined Boolean Number String Null,Undefined 对应的值只有一个 undefined, Boolean 对 ...

  6. 学习笔记之高质量C++/C编程指南

    高质量C++/C编程指南 http://man.lupaworld.com/content/develop/c&c++/c/c.htm 高质量C++/C编程指南(附录 C :C++/C 试题的 ...

  7. C++ Qt 访问权限总结

    总结:C++的访问修饰符的作用是以类为单位,而不是以对象为单位. 通俗的讲,同类的对象间可以“互相访问”对方的数据成员,只不过访问途径不是直接访问. 步骤是:通过一个对象调用其public成员函数,此 ...

  8. Android自定义窗口动画

    第一步,设置出现和消失的xml 1.在res/anim下创建enter_anim.xml,设置窗口出现的动画 <?xml version="1.0" encoding=&qu ...

  9. JSONP 跨域解决办法

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  10. Solr高亮显示highlight的三种实现

    高亮显示在搜索中使用的比较多,比较常用的有三种使用方式,如果要对某field做高亮显示,必须对该field设置stored=true      第一种是普通的高亮显示Highlighter,根据查询的 ...