zoukankan
html css js c++ java
C#中把货币、日期转换成中文大写
日期转换代码如下:
/**/
///
<summary>
///
日期转换为中文大写
///
</summary>
public
class
UpperConvert
{
public
UpperConvert()
{
//
//
TODO: 在此处添加构造函数逻辑
//
}
//
把数字转换为大写
public
string
numtoUpper(
int
num)
{
String str
=
num.ToString();
string
rstr
=
""
;
int
n;
for
(
int
i
=
0
; i
<
str.Length; i
++
)
{
n
=
Convert.ToInt16(str[i].ToString());
//
char转数字,转换为字符串,再转数字
switch
(n)
{
case
0
:rstr
=
rstr
+
"
〇
"
;
break
;
case
1
:rstr
=
rstr
+
"
一
"
;
break
;
case
2
:rstr
=
rstr
+
"
二
"
;
break
;
case
3
:rstr
=
rstr
+
"
三
"
;
break
;
case
4
:rstr
=
rstr
+
"
四
"
;
break
;
case
5
:rstr
=
rstr
+
"
五
"
;
break
;
case
6
:rstr
=
rstr
+
"
六
"
;
break
;
case
7
:rstr
=
rstr
+
"
七
"
;
break
;
case
8
:rstr
=
rstr
+
"
八
"
;
break
;
default
:rstr
=
rstr
+
"
九
"
;
break
;
}
}
return
rstr;
}
//
月转化为大写
public
string
monthtoUpper(
int
month)
{
if
(month
<
10
)
{
return
numtoUpper(month);
}
else
if
(month
==
10
)
{
return
"
十
"
; }
else
{
return
"
十
"
+
numtoUpper(month
-
10
);
}
}
//
日转化为大写
public
string
daytoUpper(
int
day)
{
if
(day
<
20
)
{
return
monthtoUpper(day);
}
else
{
String str
=
day.ToString();
if
(str[
1
]
==
'
0
'
)
{
return
numtoUpper(Convert.ToInt16(str[
0
].ToString()))
+
"
十
"
;
}
else
{
return
numtoUpper(Convert.ToInt16(str[
0
].ToString()))
+
"
十
"
+
numtoUpper(Convert.ToInt16(str[
1
].ToString()));
}
}
}
//
日期转换为大写
public
string
dateToUpper(System.DateTime date)
{
int
year
=
date.Year;
int
month
=
date.Month;
int
day
=
date.Day;
return
numtoUpper(year)
+
"
年
"
+
monthtoUpper(month)
+
"
月
"
+
daytoUpper(day)
+
"
日
"
;
}
}
货币转换代码:
/**/
///
<summary>
///
MoneyConvert 的摘要说明
///
</summary>
public
class
MoneyConvert
{
public
MoneyConvert()
{
//
//
TODO: 在此处添加构造函数逻辑
//
}
public
string
GetUpper(
string
numstr)
{
try
{
decimal
num
=
Convert.ToDecimal(numstr);
return
GetUpper(num);
}
catch
{
return
"
非数字形式!
"
;
}
}
public
string
GetUpper(
int
numint)
{
try
{
decimal
num
=
Convert.ToDecimal(numint);
return
GetUpper(num);
}
catch
{
return
"
非数字形式!
"
;
}
}
/**/
/**/
/**/
///
<summary>
///
转换人民币大小金额
///
</summary>
///
<param name="num">
金额
</param>
///
<returns>
返回大写形式
</returns>
public
string
GetUpper(
decimal
num)
{
string
strUpperMum
=
"
零壹贰叁肆伍陆柒捌玖
"
;
//
0-9所对应的汉字
string
strNumUnit
=
"
万仟佰拾亿仟佰拾万仟佰拾元角分
"
;
//
数字位所对应的汉字
string
strOfNum
=
""
;
//
从原num值中取出的值
string
strNum
=
""
;
//
数字的字符串形式
string
strReturnUpper
=
""
;
//
人民币大写金额形式
int
i;
//
循环变量
int
sumLength;
//
num的值乘以100的字符串长度
string
ch1
=
""
;
//
数字的汉语读法
string
ch2
=
""
;
//
数字位的汉字读法
int
nzero
=
0
;
//
用来计算连续的零值是几个
int
temp;
//
从原num值中取出的值
num
=
Math.Round(Math.Abs(num),
2
);
//
将num取绝对值并四舍五入取2位小数
strNum
=
((
long
)(num
*
100
)).ToString();
//
将num乘100并转换成字符串形式
sumLength
=
strNum.Length;
//
找出最高位
if
(sumLength
>
15
)
{
return
"
溢出
"
; }
strNumUnit
=
strNumUnit.Substring(
15
-
sumLength);
//
取出对应位数的strNumUnit的值。如:200.55,sumLength为5所以strNumUnit=佰拾元角分
//
循环取出每一位需要转换的值
for
(i
=
0
; i
<
sumLength; i
++
)
{
strOfNum
=
strNum.Substring(i,
1
);
//
取出需转换的某一位的值
temp
=
Convert.ToInt32(strOfNum);
//
转换为数字
if
(i
!=
(sumLength
-
3
)
&&
i
!=
(sumLength
-
7
)
&&
i
!=
(sumLength
-
11
)
&&
i
!=
(sumLength
-
15
))
{
//
当所取位数不为元、万、亿、万亿上的数字时
if
(strOfNum
==
"
0
"
)
{
ch1
=
""
;
ch2
=
""
;
nzero
=
nzero
+
1
;
}
else
{
if
(strOfNum
!=
"
0
"
&&
nzero
!=
0
)
{
ch1
=
"
零
"
+
strUpperMum.Substring(temp
*
1
,
1
);
ch2
=
strNumUnit.Substring(i,
1
);
nzero
=
0
;
}
else
{
ch1
=
strUpperMum.Substring(temp
*
1
,
1
);
ch2
=
strNumUnit.Substring(i,
1
);
nzero
=
0
;
}
}
}
else
{
//
该位是万亿,亿,万,元位等关键位
if
(strOfNum
!=
"
0
"
&&
nzero
!=
0
)
{
ch1
=
"
零
"
+
strUpperMum.Substring(temp
*
1
,
1
);
ch2
=
strNumUnit.Substring(i,
1
);
nzero
=
0
;
}
else
{
if
(strOfNum
!=
"
0
"
&&
nzero
==
0
)
{
ch1
=
strUpperMum.Substring(temp
*
1
,
1
);
ch2
=
strNumUnit.Substring(i,
1
);
nzero
=
0
;
}
else
{
if
(strOfNum
==
"
0
"
&&
nzero
>=
3
)
{
ch1
=
""
;
ch2
=
""
;
nzero
=
nzero
+
1
;
}
else
{
if
(sumLength
>=
11
)
{
ch1
=
""
;
nzero
=
nzero
+
1
;
}
else
{
ch1
=
""
;
ch2
=
strNumUnit.Substring(i,
1
);
nzero
=
nzero
+
1
;
}
}
}
}
}
if
(i
==
(sumLength
-
11
)
||
i
==
(sumLength
-
3
))
{
//
如果该位是亿位或元位,则必须写上
ch2
=
strNumUnit.Substring(i,
1
);
}
strReturnUpper
=
strReturnUpper
+
ch1
+
ch2;
if
(i
==
sumLength
-
1
&&
strOfNum
==
"
0
"
)
{
//
最后一位(分)为0时,加上“整”
strReturnUpper
=
strReturnUpper
+
'
整
'
;
}
}
if
(num
==
0
)
{
strReturnUpper
=
"
零元整
"
;
}
return
strReturnUpper;
}
}
查看全文
相关阅读:
POJ 1142 Smith Numbers
POJ 1171 Letter Game 解题思路
人人德克萨斯牌出手规则整理
OpenMP相关知识索引
如何进行有效的沟通
台哥算法练习:一个for循环打印九九乘法表
啊哈,381654729!
发牌的小窍门
判断数abcdef能否被k整除(k属于[2,9])
如何在数轴上找到一个数的倒数
原文地址:https://www.cnblogs.com/MaxWoods/p/1101963.html
最新文章
php基本语法!
PHP自定义环境配置
vi/vim使用进阶: 使用会话和viminfo
经典vim插件功能说明、安装方法和使用方法介绍(已更新) .
php提示undefined index的几种解决方法!
Json中添加List!javascript解析!
Linux下常用命令备忘录
discuz x2.5 查看全部常量和全部变量的代码
如何在Linux下安装nginx
Apache下实现301重定向的两种方法
热门文章
全球最大的ppt分享网站 www.slideshare.net
jQuery Cycle Plugin 插件备忘
discuz x2.5中将文章列表或内容页的长日期格式转换成短日期格式(Ymd H:i:s)> (Ymd)
求助:php通过新浪微博接口 api 如果获取某一地区下所有用户的微博列表?或使用包含某一关键词的微博列表
apache开启虚拟主机备忘!
【回顾】中国剩余定理
感人故事和视频
【Z】男人应该努力去做的
DP一题解题报告POJ1141 Brackets Sequence
《C++语言99个常见编程错误》读书笔记
Copyright © 2011-2022 走看看