天天看點

将日期轉為中文字元的類

正在做一個東西,要求從15,18位的身份證上取下出生日期,形式為19800825,然後分開年月日轉為中文:一九八O、八、二十五,下面是源代碼

/**/ /// <summary>

/// Summary description for NumToChinese

/// </summary>

/// <summary>

/// 将日期轉換為中文形式,日期是從身份證上取下的,暫不作資料有效性驗證,形式為年:2004 月03 日26

/// 從身份證取出生日期的程式就不寫了

/// Joeliang

/// 2007.7.5

using System;

using System.Collections.Generic;

using System.Text;

public class NumToChinese

{

 private const string chinese = "○一二三四五六七八九";

    public static string ConvertYear(string year)

    {

        StringBuilder result = new StringBuilder();

        for (int i = 0; i < year.Length; i++)

        {

            result.Append(chinese[int.Parse(year[i].ToString())]);

        }

        return result.ToString();

    }

    //從身份證取下來的月,例如01,10,12

    public static string ConvertMonth(string month)

        if (month[0].ToString() == "0") //如果是1-9月份

            result.Append(chinese[int.Parse(month[1].ToString())]);

        else

            if (month == "10") //如果是10月份

            {

                result.Append("十");

            }

            else                        //如果是11,12月份

                result.Append(chinese[int.Parse(month[1].ToString())]);

    //從身份證取下來的日,例如01,08,10,22

    public static string ConvertDay(string day)

        if (day[0].ToString() == "0") //如果是個位數

            result.Append(chinese[int.Parse(day[1].ToString())]);

            if (day[1].ToString() == "0") //如果是10,20,30

                if(day[0].ToString() == "1") //如果是10

                {

                }

                else   //如果是20,30

                    result.Append(chinese[int.Parse(day[0].ToString())]);

            else                          //如果是11,25,31

                if(day[0].ToString() == "1") //如果是11-19

                else              //如果是21-29,31

                result.Append(chinese[int.Parse(day[1].ToString())]);

}