黑马程序员技术交流社区
标题:
日期转换问题。希望有用
[打印本页]
作者:
王德钊
时间:
2013-4-19 21:08
标题:
日期转换问题。希望有用
class Program
{//编写一个函数进行日期转换,将输入的中文日期转换为阿拉伯数字日期,比如:二零一二年十二月二十一日要转换为2012-12-21
static Dictionary<char, char> dicDate = new Dictionary<char, char>();
static void Main(string[] args)
{//定义数组,并使用逗号将数组截分。
string str = "一1,二2,三3,四4,五5,六6,七7,八8,九9,零0";
//string str1 = "年-,月-,日 ";
string[] arr = str.Split(',');
//string[] arr1 = str1.Split(',');
//将截出的键值对添加到键值集合中
for (int i = 0; i < arr.Length; i++)
{
dicDate.Add(arr[i][0], arr[i][1]);
}
Console.WriteLine("请输入一个日期");
string date = Console.ReadLine();
string result = ZhuanHuan(date);
Console.WriteLine(result);
Console.ReadKey();
}
static string ZhuanHuan(string date)
{//定义一个可变字符的字符串
StringBuilder stb = new StringBuilder();
if (date.Contains('十'))
{
for (int i = 0; i < date.Length; i++)
{
if (dicDate.ContainsKey(date[i]))
{
stb.Append(dicDate[date[i]]);
}
else if (date[i] == '十')
{//当输入日期中含有十时,有几种情况,分别说明。
if (!dicDate.ContainsKey(date[i - 1]) && !dicDate.ContainsKey(date[i + 1]))
{//例如**月十日
stb.Append("10");
}
else if (dicDate.ContainsKey(date[i - 1]) && !dicDate.ContainsKey(date[i + 1]))
{//例如**月20日
stb.Append("0");
}
else if (!dicDate.ContainsKey(date[i - 1]) && dicDate.ContainsKey(date[i + 1]))
{//例如十二月**日
stb.Append("1");
}
else
{
stb.Append("");
}
}
else
{
stb.Append(date[i]);
}
}
}
else
{
for (int i = 0; i < date.Length; i++)
{
if (dicDate.ContainsKey(date[i]))
{
stb.Append(dicDate[date[i]]);
}
else
{
stb.Append(date[i]);
}
}
}
return stb.ToString();
}
}
复制代码
作者:
许庭洲
时间:
2013-4-19 21:25
值得学习ing!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2