1. 程式人生 > >黑馬程式設計師-習題練習3

黑馬程式設計師-習題練習3

 //編寫一個函式進行日期轉換,將輸入的中文日期轉換為阿拉伯數字日期,比如:
        //二零一二年十二月月二十一日要轉換為2012-12-2 1。(處理“十”的問題:
        //1.*月十日;2.*月十三日;3.*月二十三日;4.*月三十日。4種情況對“十”的不同翻譯。
        //1→10;2→1;3→不翻譯;4→0【年部分不可能出現’十’,都出現在了月與日部分。】
        //測試資料:二零一二年十二月二十一日、二零零九年七月九日、二零一零年十月二十四日、
        //二零一零年十月二十日
        static void Main(string[] args)
        {
            string date = "二零一二年二月二一日";
            string strNumb = "一1 二2 三3 四4 五5 六6 七7 八8 九9 零0";
            string[] strNumbs = strNumb.Split(' ');
            string nullYear = "";
            Dictionary<char, char> years = new Dictionary<char, char>(); 
            for (int i = 0; i < strNumbs.Length; i++) 
            {
                years.Add(strNumbs[i][0], strNumbs[i][1]); 
            }
            //years.Add('年', '-');
            //years.Add('月', '-');
            for (int i = 0; i < date.Length; i++) 
            { 
                if (years.ContainsKey(date[i])) 
                {
                    nullYear += years[date[i]];
                } 
                else if (date[i] == '年' || date[i] == '月' ) 
                {
                    nullYear += '-';
                } 
                else if (date[i] == '十' && years.ContainsKey(date[i + 1]) && !years.ContainsKey(date[i - 1])) 
                {
                    nullYear += '1'; 
                } 
                else if (date[i] == '十' && !years.ContainsKey(date[i + 1]) && years.ContainsKey(date[i - 1])) 
                {
                    nullYear += '0'; 
                } 
                else if (date[i] == '十' && !years.ContainsKey(date[i + 1]) && !years.ContainsKey(date[i - 1])) 
                {
                    nullYear += "10"; 
                } 
            }
            Console.WriteLine(nullYear);
            Console.ReadKey(); 




        }