A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王德钊 中级黑马   /  2013-4-19 21:08  /  1121 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Program
  2.     {//编写一个函数进行日期转换,将输入的中文日期转换为阿拉伯数字日期,比如:二零一二年十二月二十一日要转换为2012-12-21
  3.         static Dictionary<char, char> dicDate = new Dictionary<char, char>();

  4.         static void Main(string[] args)
  5.         {//定义数组,并使用逗号将数组截分。
  6.             string str = "一1,二2,三3,四4,五5,六6,七7,八8,九9,零0";
  7.             //string str1 = "年-,月-,日 ";
  8.             string[] arr = str.Split(',');
  9.             //string[] arr1 = str1.Split(',');
  10.             //将截出的键值对添加到键值集合中
  11.             for (int i = 0; i < arr.Length; i++)
  12.             {
  13.                 dicDate.Add(arr[i][0], arr[i][1]);
  14.             }

  15.             Console.WriteLine("请输入一个日期");
  16.             string date = Console.ReadLine();
  17.             string result = ZhuanHuan(date);
  18.             Console.WriteLine(result);
  19.             Console.ReadKey();
  20.         }


  21.         static string ZhuanHuan(string date)
  22.         {//定义一个可变字符的字符串
  23.             StringBuilder stb = new StringBuilder();
  24.             
  25.             if (date.Contains('十'))
  26.             {
  27.                 for (int i = 0; i < date.Length; i++)
  28.                 {
  29.                     if (dicDate.ContainsKey(date[i]))
  30.                     {
  31.                         stb.Append(dicDate[date[i]]);
  32.                     }
  33.                     else if (date[i] == '十')
  34.                     {//当输入日期中含有十时,有几种情况,分别说明。
  35.                         if (!dicDate.ContainsKey(date[i - 1]) && !dicDate.ContainsKey(date[i + 1]))
  36.                         {//例如**月十日
  37.                             stb.Append("10");
  38.                         }
  39.                         else if (dicDate.ContainsKey(date[i - 1]) && !dicDate.ContainsKey(date[i + 1]))
  40.                         {//例如**月20日
  41.                             stb.Append("0");
  42.                         }
  43.                         else if (!dicDate.ContainsKey(date[i - 1]) && dicDate.ContainsKey(date[i + 1]))
  44.                         {//例如十二月**日
  45.                             stb.Append("1");
  46.                         }
  47.                         else
  48.                         {
  49.                             stb.Append("");
  50.                         }
  51.                     }
  52.                     else
  53.                     {
  54.                         stb.Append(date[i]);
  55.                     }
  56.                 }
  57.             }
  58.             else
  59.             {
  60.                 for (int i = 0; i < date.Length; i++)
  61.                 {
  62.                     if (dicDate.ContainsKey(date[i]))
  63.                     {
  64.                         stb.Append(dicDate[date[i]]);
  65.                     }
  66.                     else
  67.                     {
  68.                         stb.Append(date[i]);
  69.                     }
  70.                 }
  71.             }

  72.             return stb.ToString();
  73.         }

  74.     }
复制代码

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马