C#根據出生日期和當前日期計算精確年齡

b5cw 9年前發布 | 5K 次閱讀 C#

C#根據出生日期和當前日期計算精確年齡

public static string GetAge(DateTime dtBirthday, DateTime dtNow)
        {
            string  strAge      = string.Empty;                         // 年齡的字符串表示
            int     intYear     = 0;                                    // 歲
            int     intMonth    = 0;                                    // 月
            int     intDay      = 0;                                    // 天

        // 如果沒有設定出生日期, 返回空
        if (DataType.DateTime_IsNull(ref dtBirthday) == true)
        {
            return string.Empty;
        }

        // 計算天數
        intDay = dtNow.Day - dtBirthday.Day;
        if (intDay < 0)
        {
            dtNow = dtNow.AddMonths(-1);
            intDay += DateTime.DaysInMonth(dtNow.Year, dtNow.Month);
        }

        // 計算月數
        intMonth = dtNow.Month - dtBirthday.Month;
        if (intMonth < 0)
        {
            intMonth += 12;
            dtNow = dtNow.AddYears(-1);
        }

        // 計算年數
        intYear = dtNow.Year - dtBirthday.Year;

        // 格式化年齡輸出
        if (intYear >= 1)                                            // 年份輸出
        {
            strAge = intYear.ToString() + "歲";
        }

        if (intMonth > 0 && intYear <= 5)                           // 五歲以下可以輸出月數
        {
            strAge += intMonth.ToString() + "月";
        }

        if (intDay >= 0 && intYear < 1)                              // 一歲以下可以輸出天數
        {
            if (strAge.Length == 0 || intDay > 0)
            {
                strAge += intDay.ToString() + "日";
            }
        }

        return strAge;
    }</pre> 


 本文由用戶 b5cw 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!