罗代势 发表于 2012-10-27 23:49
我觉得你们没有考虑到是让用户输入,如:2012年10月27日,大写:二零一二年十月二十七日!!!!没有十~三 ...
我做好了,你看看还有什么问题。- static void Main(string[] args)
- { Console.WriteLine("请输入一个日期");
- string dateTime = Console.ReadLine();
- string[] newDateTime = dateTime.Split(new string[] { "年","月","日" }, StringSplitOptions.RemoveEmptyEntries);
- //将输入的字符串按年月日分割,如2011年10月80日,则变成{2011,10,80}
- try
- {
- int year = int.Parse(newDateTime[0]);
- int month = int.Parse(newDateTime[1]);
- int day = int.Parse(newDateTime[2]);
- //声明数组,存放每月的天数,第一行存闰年,第二行存平年
- int[,] day_tabnew = new int[2, 13] { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, }, { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, } };
- int lp = year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ? 1 : 0;//*判定year为闰年还是平年,lp=0为平年,非0为闰年*/
- if (day > day_tabnew[lp, month])//取出对应年月的天数,并与用户输入的天数做对比1
- {
- Console.WriteLine("不存在该日期");
- }
- else
- {
- //这里的可以用其他方法代替,求其他同学贴出自己的解法
- dateTime = dateTime.Replace("0", "零");
- dateTime = dateTime.Replace("1", "一");
- dateTime = dateTime.Replace("2", "二");
- dateTime = dateTime.Replace("3", "三");
- dateTime = dateTime.Replace("4", "四");
- dateTime = dateTime.Replace("5", "五");
- dateTime = dateTime.Replace("6", "六");
- dateTime = dateTime.Replace("7", "七");
- dateTime = dateTime.Replace("8", "八");
- dateTime = dateTime.Replace("9", "九");
- Console.WriteLine(dateTime);
- }
- }
- catch (Exception)
- {
- Console.WriteLine("请输入正确格式的日期,如2011年6月4日");
- }
- Console.ReadKey();
- }
复制代码 运行效果图:
|