.net 金额中文大写 日期转中文
金额中文大写
- #region 中文大写
- /// <summary>
- /// 返回中文数字 ,如壹佰元整
- /// </summary>
- /// <param name="valIn"></param>
- /// <param name="strType">0返回金额写法,1返回数量写法</param>
- /// <returns></returns>
- public static string GetChineseNum(decimal valIn, int strType = )
- {
- string m_1, m_2, m_3, m_4, m_5, m_6, m_7, m_8, m_9;
- string numNum = "0123456789.";
- string numChina = "零壹贰叁肆伍陆柒捌玖点";
- string numChinaWeigh = "个拾佰仟万拾佰仟亿拾佰仟万";
- //m_1.Format("%.2f", atof(m_1));
- m_1 = valIn.ToString("f2");
- m_2 = m_1;
- m_3 = m_4 = "";
- //m_2:1234-> 壹贰叁肆
- for (int i = ; i < ; i++)
- {
- //m_2=m_2.Replace(numNum.Mid(i, 1), numChina.Mid(i * 2, 2));
- m_2 = m_2.Replace(numNum.Substring(i, ), numChina.Substring(i, ));
- }
- //m_3:佰拾万仟佰拾个
- int iLen = m_1.Length;
- if (iLen > )
- {
- m_8 = m_9 = "越界错!";
- throw new Exception("数字太大,超出处理范围");
- }
- if (m_1.IndexOf('.') > )
- iLen = m_1.IndexOf('.');
- for (int j = iLen; j >= ; j--)
- {
- m_3 += numChinaWeigh.Substring(j - , );
- }
- //m_4:2行+3行
- for (int i = ; i < m_3.Length; i++)
- {
- m_4 += m_2.Substring(i, ) + m_3.Substring(i, );
- }
- //m_5:4行去"0"后拾佰仟
- m_5 = m_4;
- m_5 = m_5.Replace("零拾", "零");
- m_5 = m_5.Replace("零佰", "零");
- m_5 = m_5.Replace("零仟", "零");
- //m_6:00-> 0,000-> 0
- m_6 = m_5;
- for (int i = ; i < iLen; i++)
- m_6 = m_6.Replace("零零", "零");
- //m_7:6行去亿,万,个位"0"
- m_7 = m_6;
- m_7 = m_7.Replace("亿零万零", "亿零");
- m_7 = m_7.Replace("亿零万", "亿零");
- m_7 = m_7.Replace("零亿", "亿");
- m_7 = m_7.Replace("零万", "万");
- if (m_7.Length > )
- m_7 = m_7.Replace("零个", "个");
- //m_8:7行+2行小数-> 数目
- m_8 = m_7;
- m_8 = m_8.Replace("个", "");
- if (m_2.Substring(m_2.Length - , ) != "点零零")
- m_8 += m_2.Substring(m_2.Length - , );
- //m_9:7行+2行小数-> 价格
- m_9 = m_7;
- m_9 = m_9.Replace("个", "元");
- if (m_2.Substring(m_2.Length - , ) != "点零零")
- {
- m_9 += m_2.Substring(m_2.Length - , );
- m_9 = m_9.Insert(m_9.Length - , "角");
- m_9 += "分";
- }
- else m_9 += "整";
- if (m_9 != "零元整")
- m_9 = m_9.Replace("零元", "");
- m_9 = m_9.Replace("零分", "整");
- if (strType == ) //数量
- return m_8;
- else
- return m_9;
- }
- #endregion
日期转中文
- #region 日期转中文
- /// <summary>
- /// 日期转中文
- /// </summary>
- /// <param name="strDate">日期</param>
- /// <returns></returns>
- public static string GetChineseDate(string strDate)
- {
- char[] strChinese = new char[] {
- '〇','一','二','三','四','五','六','七','八','九','十'
- };
- StringBuilder result = new StringBuilder();
- //// 依据正则表达式判断参数是否正确
- //Regex theReg = new Regex(@"(d{2}|d{4})(/|-)(d{1,2})(/|-)(d{1,2})");
- if (!string.IsNullOrEmpty(strDate))
- {
- // 将数字日期的年月日存到字符数组str中
- string[] str = null;
- if (strDate.Contains("-"))
- {
- str = strDate.Split('-');
- }
- else if (strDate.Contains("/"))
- {
- str = strDate.Split('/');
- }
- // str[0]中为年,将其各个字符转换为相应的汉字
- for (int i = ; i < str[].Length; i++)
- {
- result.Append(strChinese[int.Parse(str[][i].ToString())]);
- }
- result.Append("年");
- // 转换月
- int month = int.Parse(str[]);
- int MN1 = month / ;
- int MN2 = month % ;
- if (MN1 > )
- {
- result.Append(strChinese[MN1]);
- }
- if (MN1 > )
- {
- result.Append(strChinese[]);
- }
- if (MN2 != )
- {
- result.Append(strChinese[MN2]);
- }
- result.Append("月");
- // 转换日
- int day = int.Parse(str[]);
- int DN1 = day / ;
- int DN2 = day % ;
- if (DN1 > )
- {
- result.Append(strChinese[DN1]);
- }
- if (DN1 > )
- {
- result.Append(strChinese[]);
- }
- if (DN2 != )
- {
- result.Append(strChinese[DN2]);
- }
- result.Append("日");
- }
- else
- {
- throw new ArgumentException();
- }
- return result.ToString();
- }
- #endregion
.net 金额中文大写 日期转中文的更多相关文章
- C# 日期转换为中文大写
/// <summary> /// 日期转换为中文大写 /// </summary> public class UpperConvert { public UpperConve ...
- 【转载】C#工具类:人民币金额转换为中文大写
在涉及到金融业务这一块的系统设计中,时常能够遇到的情况是需要将阿拉伯数字的人民币金额自动转换为中文的大写金额.现在互联网上也有很多网站提供此类服务,只要你输入人民币的阿拉伯数字金额,输入后自动给你转换 ...
- 【JAVA】POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
POI设置EXCEL单元格格式为文本.小数.百分比.货币.日期.科学计数法和中文大写 博客分类:,本文内容转自 http://javacrazyer.iteye.com/blog/894850 FIL ...
- C# 金额转中文大写
今天看到一个库是把金额转中文大写,看起来很容易,所以我就自己写了 创建的项目是创建一个 dot net core 的项目,实际上这个项目可以创建为 Stand 的. 首先创建类,这个类的构造传入一个 ...
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
再读本篇文章之前,请先看我的前一篇文章,前一篇文章中有重点讲到POI设置EXCEL单元格格式为文本格式,剩下的设置小数.百分比.货币.日期.科学计数法和中文大写这些将在下面一一写出 以下将要介绍的每一 ...
- JS把数字金额转换成中文大写数字的函数
//把数字金额转换成中文大写数字的函数 function num2rmb ($num){ $c1="零壹贰叁肆伍陆柒捌玖"; $c2="分角元拾佰仟万拾佰仟亿" ...
- 2018-4-29-C#-金额转中文大写
title author date CreateTime categories C# 金额转中文大写 lindexi 2018-04-29 09:50:38 +0800 2018-04-02 21:4 ...
- XtraReport报表入库单数字转中文大写数字
先看看打印入库单的效果图,看如下: 客户要求合计一行,要求大写中文数字.XtraReport报表是如何做出以上图的效果呢?因为是要把数字转成大写中文数字,得先准备数字转大写中文数字的函数.因网上有很多 ...
- JavaScript将输入的数字金额转换成对应的中文大写金额
// 将输入的数字金额转换成对应的中文大写金额 // idNumber输入的数字金额,idCHN输出的中文大写金额 function TransformNumberIntoCHN(idNumber, ...
随机推荐
- NSUserDefaults数据存储
前言 用来保存应用程序设置和属性.用户保存的数据.用户再次打开程序或开机后这些数据仍然存在. 如果往 userDefaults 里存了一个可变数组,取出来的时候这个数组对象就变成了不可变的. NSUs ...
- 洛谷P4016 负载平衡问题(费用流)
传送门 嗯……完全不会……不过题解似乎讲的挺清楚…… 考虑一下,每一个仓库最终肯定都是平均数,所以数量大于平均数的可以往外运,小于平均数的要从别的地方运进来 考虑建一个超级源$S$和超级汇$T$,并把 ...
- Python数组(二)
一.函数list 可将任何序列(如字符串)作为list的参数.list实际上是一个类,而不是函数. test=['java','C#','C','C++'] print(list(test)) ——& ...
- Difference **面向过程(或者叫结构化)分析方法**面向对象分析方法
面向过程和面向对象的区别 面向过程是分析出解决问题所需要的步骤,然后一步步实现,面向对象是把构成问事件分解成各个对象,建立对象的目的是为了描述某个事物在整个解决问题的步骤中的行为. 可以说面向对象是从 ...
- Django--队列2
celery 4.2 -Ofair现在是默认的调度策略 关于-Ofair命令行选项的作用存在很多混淆,并且在解释中使用术语“预取”可能没有帮助,因为这个术语在AMQP中有多么混乱. 当使用prefor ...
- java基础_02
一.this和super 作用: this:区分成员变量和局部变量 super:区分父类的成员变量和局部变量 用法: this.成员变量名://访问本类的成员变量 this.成员方法名()://访问本 ...
- CentOS 中安装 mysql 5.7+
参考:https://www.cnblogs.com/jimboi/p/6405560.html 1.下载rpm文件 wget https://dev.mysql.com/get/mysql57-co ...
- 004 Android XML文件常用五大页面布局方式
1.线性布局(LinearLayout)最常用 <1>使用线性布局,首先在xml文件中修改布局为LinearLayout 修改完成后,可在Component Tree中看见如下内容: &l ...
- C++_类继承3-动态联编和静态联编
程序调用函数时,将使用哪个可执行代码块呢?编译器负责回答这个问题. 将源代码中的函数调用解释为特定的函数代码块被称为函数名联编(binding). 在C语言中,这非常简单,因为每个函数名对应一个不同的 ...
- codeforces 1072D Minimum path bfs+剪枝 好题
题目传送门 题目大意: 给出一幅n*n的字符,从1,1位置走到n,n,会得到一个字符串,你有k次机会改变某一个字符(变成a),求字典序最小的路径. 题解: (先吐槽一句,cf 标签是dfs题????) ...