黑马程序员技术交流社区
标题:
如何将2013-01-03转换成二零一三年一月三日
[打印本页]
作者:
戴鑫凯
时间:
2013-2-21 21:17
标题:
如何将2013-01-03转换成二零一三年一月三日
本帖最后由 pokemon 于 2013-2-21 22:04 编辑
求解答,没有 2013-13-43 这种bug的
作者:
徐荣权
时间:
2013-2-21 21:28
本帖最后由 徐荣权 于 2013-2-21 21:35 编辑
我的做法是先用split截取字符串, 然后用if判断,if(a==1)替换成一,以此类推。比较简单,但是麻烦点。。。
作者:
李景荣
时间:
2013-2-21 21:53
//c#时间格式转换汉字大写 比如: “2011年6月4日” 转换成 “二零一一年六月四日”。
//(参考提示:把字符串作为char数组来用,判断如果是2→’二’,0→’零’,1→‘一’…)
string str="2011年6月4日";
char[] charStr = str.ToCharArray();
for (int i = 0; i < charStr.Length; i++)
{
switch (charStr[i])
{
case '0':
charStr[i] = '零';
break;
case '1':
charStr[i] = '一';
break;
case '2':
charStr[i] = '二';
break;
case '3':
charStr[i] = '三';
break;
case '4':
charStr[i] = '四';
break;
case '5':
charStr[i] = '五';
break;
case '6':
charStr[i] = '六';
break;
case '7':
charStr[i] = '七';
break;
case '8':
charStr[i] = '八';
break;
case '9':
charStr[i] = '九';
break;
}
}
str = new string(charStr);
Console.WriteLine(str);
Console.ReadKey();
作者:
刘明杰
时间:
2013-2-21 21:53
本帖最后由 刘明杰 于 2013-2-21 21:55 编辑
1、split截取出来月份和日 进行判断。
2、先使用IndexOf() 得到第一个“-”的位置索引,同样使用IndexOf() 得到第二个“-”的位置索引,然后使用Substring() 从第一个“-”索引+1开始截取2个字符串,就得到了月份,就可以判断输入是否合法了。 最后也使用Substring()从第二个“-”的位置索引+1开始截取到最后,得到日的字符串,进行判断就行了。
作者:
罗海云
时间:
2013-2-21 21:54
http://blog.sina.com.cn/s/blog_4449f2f90100edxv.html推荐你去看下这个.
作者:
康晓璞
时间:
2013-2-21 21:59
我的做法是将年,月,日,分别分别处理
首先,建立字典
年用0到9这几个数字做键放到字典DictYear[0]=“零”,DictYear[1]="一",。。。
月用01到12这几个数字做键放到字典DicMontht[01]='"一月",DicyMonth[02]="二月",。。。
日用01到31这几个数做键放到字典DictDay[01]=“一日”,DictDay[02]=“二日”,。。
再次,
将年取出,循环取出数字做DictYear的键的得到相应好汉字,
将月取出做DictMonth的键,得到相应的月份
将日取出做DictDay的键,得到相应的日
最后将转换的汉字加分割符组合起来。
作者:
王立
时间:
2013-2-21 22:09
DateTime dt1 = Convert.ToDateTime("2013-01-03");
string a = string.Format("{0:yyyy年M月d日}", dt1); //2013年1月3日 如果想要2013年01月03日 就yyyy年MM月dd日
String[] nums = { "0零", "1一", "2二", "3三", "4四", "5五",
"6六", "7七", "8八", "9九" };
for (int i = 0; i < nums .Length ; i++)
{
string num = nums[i];
a = a.Replace(num[0].ToString (), num[1].ToString ());
}
//二零一三年一月三日
MessageBox.Show(a);
作者:
郝滨
时间:
2013-2-22 08:22
做好设置字典 把以“1一 2二 3三。。。”这种形式。以空格分隔
split截取出来月份和日 以“-”为参照。然后parts[0]直接转换:2013直接二零一三;parts[1]为月份,要考虑十的问题,分情况;parts[2]为日,也要分情况
作者:
吕振
时间:
2013-2-22 13:17
楼上说得好啊,简明扼要,考虑周全,建议回复都这样就好了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2