.编写函数进行日期转换;键输入的大写的日期转换成阿拉伯数字的形式。
二零一二年三月十三日 2012-3-13
二零一二年三月十日 2012-3-10
二零一二年三月二十三日 2012-3-23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace 日期转换
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入大写日期:");
string inputCdate = Console.ReadLine();
Console.WriteLine(DateConvert(inputCdate));
Console.ReadKey();
}
private static string DateConvert(string date)//date--二零一二年三月二十三日
{
Dictionary<char, char> dic = new Dictionary<char, char>();
string dictionary = "零0 一1 二2 三3 四4 五5 六6 七7 八8 九9";
string[] parts = dictionary.Split(' ');
//parts[0]="零0"
for (int i = 0; i < parts.Length; i++)
{
dic.Add(parts[i][0], parts[i][1]);
}
StringBuilder sb = new StringBuilder();
//用户输入的大写的日期date
for (int i = 0; i < date.Length; i++)
{
if (dic.ContainsKey(date[i]))//包含
{
sb.Append(dic[date[i]]);//累加
}
else if (!dic.ContainsKey(date[i]) && date[i] != '+')
{
sb.Append('-');
}
else
{
if (!dic.ContainsKey(date[i - 1]) && !dic.ContainsKey(date[i + 1]))//二零一二年三月十日 2012-3-10 类型
{
sb.Append("10");
}
else if (!dic.ContainsKey(date[i - 1]) && dic.ContainsKey(date[i + 1]))//二零一二年三月十三日 2012-3-13 类型
{
sb.Append('1');
}
else if (dic.ContainsKey(date[i - 1]) && dic.ContainsKey(date[i + 1]))//二零一二年三月二十三日 2012-3-23 类型
{
}
else if (dic.ContainsKey(date[i - 1]) && !dic.ContainsKey(date[i + 1]))//二零一二年三月二十日 2012-3-20 类型
{
sb.Append('0');
}
}
}
return (sb.ToString().TrimEnd('-'));