最近闲来无事吧旧代码整理了一下。以前也看到有人写过类似的内容,觉得挺有意思,遂自己试着写了一下,拿来玩玩还是很有意思的。小数点后的就没有弄了。

参考的是银行的那些要求,但是有些规则其实没有完全细致约定清楚……

银行、单位和个人填写的各种票据和结算凭证是办理支付结算和现金收付的重要依据,直接关系到支付结算的准确、及时和安全。票据和结算凭证是银行、单位和个人凭以记载账务的会计凭证,是记载经济业务和明确经济责任的一种书面证明。因此,填写票据和结算凭证,必须做到标准化、规范化,要要素齐全、数字正确、字迹清晰、不错漏、不潦草,防止涂改。

一、中文大写金额数字应用正楷或行书填写,如壹(壹)、贰(贰)、叁(叁)、肆(肆)、伍(伍)、陆(陆)、柒、捌、玖、拾、佰、仟、万(万)、亿、元、角、分、零、整(正)等字样。不得用一、二(两)、三、四、五、六、七、八、九、十、念、毛、另(或0)填写,不得自造简化字。如果金额数字书写中使用繁体字,如贰、陆、亿、万、圆的,也应受理。
二、中文大写金额数字到“元”为止的,在“元”之后,应写“整”(或“正”)字,在“角”之后可以不写“整”(或“正”)字。大写金额数字有“分”的,“分”后面不写“整”(或“正”)字。
三、中文大写金额数字前应标明“人民币”字样,大写金额数字有“分”的,“分”后面不写 “整”(或“正”)字。
/四、中文大写金额数字前应标明“人民币”字样,大写金额数字应紧接“人民币”字样填写,不得留有空白。大写金额数字前未印“人民币”字样的,应加填“人民币”三字。在票据和结算凭证大写金额栏内不得预印固定的“仟、佰、拾、万、仟、佰、拾、元、角、分”字样。
五、阿拉伯小写金额数字中有“0”时,中文大写应按照汉语语言规律、金额数字构成和防止涂改的要求进行书写。举例如下:
(一)阿拉伯数字中间有“0”时,中文大写金额要写“零”字。如¥1,409.50,应写成人民币壹仟肆佰零玖元伍角。
(二)阿拉伯数字中间连续有几个“0”时,中文大写金额中间可以只写一个“零” 字。如¥6,007.14,应写成人民币陆仟零柒元壹角肆分。
(三)阿拉伯金额数字万位或元位是“0”,或者数字中间连续有几个“0”,万位、元位也是“0”,但千位、角位不是“0”时,中文大写金额中可以只写一个零字,也可以不写“零”字。如¥1,680.32,应写成人民币壹仟陆佰捌拾元零叁角贰分,或者写成人民币壹仟陆佰捌拾元叁角贰分;又如¥107,000.53,应写成人民币壹拾万柒仟元零伍角叁分,或者写成人民币壹拾万零柒仟元伍角叁分。
(四)阿拉伯金额数字角位是“0”,而分位不是“0”时,中文大写金额“元”后面应写“零”字。如¥16,409.02,应写成人民币壹万陆仟肆佰零玖元零贰分;又如¥325.04,应写成人民币叁佰贰拾伍元零肆分。
六、阿拉伯小写金额数字前面,均应填写人民币符号“¥”(或草写:)。阿拉伯小写金额数字要认真填写,不得连写分辩不清。
七、票据的出票日期必须使用中文大写。为防止变造票据的出票日期,在填写月、日时,月为壹、贰和壹拾的,日为壹至玖和壹拾、贰拾和叁拾的,应在其前加“零”;日为拾壹至拾玖的,应在其前加“壹”。如1月15日,应写成零壹月壹拾伍日。再如10月20日,应写成零壹拾月零贰拾日。
八、票据出票日期使用小写填写的,银行不予受理。大写日期未按要求规范填写的,银行可予受理,但由此造成损失的,由出票人自行承担。

废话少讲以下是阿拉伯数字转换成中文大写代码:

function NumberToCn() {var CN_UPPER_NUM = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');var CN_UNIT = new Array('亿', '拾', '佰', '仟', '万');this.ArabicNumToCn = function(num) {var des = '';var preZero = false; //前一位为0var length = num.length; // 字符串长度var hundredMillions = Math.floor(length / 8); // 累加多个“亿”字符的数量(递减)var hasValue = true; //是否有非零值var index_4 = 0; // 取余4的值var index_8 = 0; // 取余8的值for (i = 0; i < length; i++) {var n = length - 1 - i; // 逐渐变化的长度var cInt = num.charAt(i); // 当前字符index_4 = n % 4; // 取余4index_8 = n % 8; // 取余8if (cInt != '0') {if (preZero) {des += CN_UPPER_NUM[0];preZero = false;}des += CN_UPPER_NUM[cInt - '0'];// 根据index_4的值接上 '拾', '佰', '仟'if (index_4 != 0) {des += CN_UNIT[index_4];}hasValue = true;} else {preZero = true;}//如果万位之前有非零值接上'万'if (index_8 == 4 && hasValue) {des += CN_UNIT[4];}//亿位的处理if (index_8 == 0) {//超过9位数才处理,且亿位之前有非零值if (i <= length - 9 && hasValue) {for (j = 0; j < hundredMillions; j++) {//累加接上'亿',不用累加就只去掉循环des += CN_UNIT[0];}}hundredMillions--; // 将减少“亿”的累加次数hasValue = false;}}return des;};
//生成中文日期
this.DateTimeToCn = function(date) {
var year = date.getFullYear().toString();
var month = (date.getMonth() + 1).toString();
var day = date.getDate().toString();
year = this.ArabicNumToCnPerDigi(year);
month = this.ArabicNumToCn(month);
if (month == '壹' || month == '贰' || month == '壹拾') {
month = '零' + month;
}
day = this.ArabicNumToCn(day);
if (day.Length == 1) {
day = '零' + day;
}
else if (day == '壹拾' || day == '贰拾' || day == '叁拾') {
day = '零' + day;
}
return year + '年' + month + '月' + day + '日';
};
//每一位都对应转为大写中文
this.ArabicNumToCnPerDigi = function(num) {
var temp = '';
var length = num.length;
for (i = 0; i < length; i++) {
temp += CN_UPPER_NUM[num.charAt(i) - '0'];
}
return temp;
};
}
function Test() {var s = new NumberToCn();
alert(s.ArabicNumToCn('1010101010100000000101010010000'));
var date = new Date();
alert(s.DateTimeToCn(date));
alert(s.ArabicNumToCnPerDigi('1010101010100000000101010010000'));}

至于那些日期的写法,我整理了一下:

普通日期表示转换为票据出票日期大写数字规则
年就是一位对一位2011就是贰零壹壹
月1,2,10 -> 零壹,零贰,零壹拾
1:零壹
2:零贰
3:(零)叁
4:(零)肆
5:(零)伍
6:(零)陆
7:(零)柒
8:(零)捌
9:(零)玖
10:零壹拾
11:壹拾壹
12:壹拾贰
日1~9,10,20,30 -> 零壹~零玖,零壹拾,零贰拾,零叁拾
日11~19 -> 壹拾壹~壹拾九
1:零壹       11:壹拾壹       21:贰拾壹      31:叁拾壹
2:零贰       12:壹拾贰       22:贰拾贰
3:零叁       13:壹拾叁       23:贰拾叁
4:零肆       14:壹拾肆       24:贰拾肆
5:零伍       15:壹拾伍       25:贰拾伍
6:零陆       16:壹拾陆       26:贰拾陆
7:零柒       17:壹拾柒       27:贰拾柒
8:零捌       18:壹拾捌       28:贰拾捌
9:零玖       19:壹拾玖       29:贰拾玖
10:零壹拾    20:零贰拾       30:零叁拾

以上就是总结的东西了,因为银行没有一个个去约定,只是举了一两个例子-_-!,问了财务才比较清楚一些,所以可能也有写不准确的,最终还是要按照实际银行和客户的要求!

阿拉伯数字转中文大写,以及票据日期的写法相关推荐

  1. c#版的阿拉伯数字转中文大写,以及票据日期的写法

    前接上篇,阿拉伯数字转中文数字是蛮有意思的,最近又有新发现~现在更新一下以前的代码~ c#版的阿拉伯数字转中文大写,以及票据日期的写法 不废话,直接上代码,两个方法 阿拉伯数字转中文: private ...

  2. 金额阿拉伯数字转换为中文大写

    最近的做项目中需要弄一个金额是阿拉伯数字转为中文大写的金额,自己偷懒了,就总结一下. 第一种方法相对复杂 private static readonly String cnNumber = " ...

  3. VB 阿拉伯数字转换为中文大写数值函数

    Private Function CChinese(StrEng As String) As String If Not IsNumeric(StrEng) Or StrEng Like " ...

  4. 阿拉伯数字 转换 中文大写

    阿拉伯数字 转换 中文大写 <?php class ToChineseNumber {private $money = "";private $cnynums = array ...

  5. Lua阿拉伯数字转中文大写数字

    function numberToString(szNum)---阿拉伯数字转中文大写local szChMoney = ""local iLen = 0local iNum = ...

  6. 阿拉伯数字和中文大写形式的相互转换

    将阿拉伯数字转化为中文大写是很简单很实用的功能,但由于0这个特殊数字的存在使得实现起来并非那么容易,实现这一功能的关键就是对0的正确处理.该程序是我几个月之前写成的,当时没有加注释,现在程序的实现细节 ...

  7. jq 数字转中文数字_阿拉伯数字 转换 中文大写

    阿拉伯数字 转换 中文大写 class ToChineseNumber { private $money = ""; private $cnynums = array(" ...

  8. 将阿拉伯数字转换为中文大写数字 —— pyhton实现

    将阿拉伯数字转换为中文大写数字 -- pyhton实现 在银行的日常业务中,常常需要用到将阿拉伯数字转换为中文大写数字的 功能.这次实验将编写一个程序,将用户输入的阿拉伯数字代表的金额,转换为大写数字 ...

  9. 阿拉伯数字转中文大写

    //=============================阿拉伯数字转中文大写============================= function Chinese(num)  //将阿拉伯 ...

  10. 阿拉伯数字转中文大写和中文小写封装工具类

    package com.springboot.entity.utils; import lombok.extern.slf4j.Slf4j; /**  * @author maniac  * date ...

最新文章

  1. vs code php html,vscode如何调试html
  2. python获取字符串首字母_[Python] Python 获取中文的首字母 和 全部拼音首字母
  3. python数据收集整理教案_数据收集整理教案讲解学习
  4. STM32零碎问题记录
  5. UVa 1658,Admiral (拆点+限制最小费用流)
  6. Android 签名
  7. pdf转图片,汉字不显示No glyph for 23495(CID 0969) in font SimSun
  8. 聚集索引与非聚集索引
  9. 如何使用node批量修改文件后缀名
  10. “梦回三国”系列总结
  11. 智能营销模型-Uplift Model详解及Python使用
  12. MySQL中的next-key lock
  13. git查看stash里面的具体内容
  14. 阿尔弗雷德.爱因斯坦论莫扎特钢协
  15. 什么情况下单独计算机械台班,投标or签证,机械台班价如何确认?
  16. 狂徒AI对罗翔老师下手了
  17. 【openjudge 计算概论(A)】[基础编程练习(运算成分)]
  18. 洛谷P5274 优化题(ccj)
  19. iOS最强下片神器,免费不限速,秒杀其他下载神器!
  20. DELLEMC S4048

热门文章

  1. js-字符串与日期转换-加减
  2. BSM模型心得,python实现方案
  3. 使用ROS2机器人操作系统进行多机器人编程技术实践(Multi-Robot Programming Via ROS2 )
  4. 新版本WordPress快速收录推送插件(Fanly Submit)
  5. EureKa服务注册与发现(集群部署Eureka与支付模块集群部署、订单模块访问负载均衡调用支付服务实现)
  6. TDSQL学习(TDSQL MySQL版)
  7. Photoshop动画制作
  8. 基于Java毕业设计智能超市导购系统源码+系统+mysql+lw文档+部署软件
  9. osg::ClipPlane 裁剪平面 空间平面方程
  10. 博彦科技JAVA笔试题及答案