C#實現(xiàn)計算年齡的簡單方法匯總
更新時間:2015年05月18日 08:58:23 投稿:hebedich
本文給大家分享的是C#代碼實現(xiàn)的簡單實用的給出用戶的出生日期,計算出用戶的年齡的代碼,另外附上其他網(wǎng)友的方法,算是對計算年齡的一次小結(jié),希望大家能夠喜歡。
vs2010測試通過,主要思想是由出生日期和當前日期,兩個日期計算出年齡(歲、月、天)
using System; using System.Collections.Generic; using System.Text; namespace PublicClass { public static class CalculationDate { /// <summary> /// 由兩個日期計算出年齡(歲、月、天) /// </summary> public static void calculationDate(DateTime beginDateTime, DateTime endDateTime) { if (beginDateTime > endDateTime) throw new Exception("開始時間應小于或等與結(jié)束時間!"); /*計算出生日期到當前日期總月數(shù)*/ int Months = endDateTime.Month - beginDateTime.Month + 12 * (endDateTime.Year - beginDateTime.Year); /*出生日期加總月數(shù)后,如果大于當前日期則減一個月*/ int totalMonth = (beginDateTime.AddMonths(Months) > endDateTime) ? Months - 1 : Months; /*計算整年*/ int fullYear = totalMonth / 12; /*計算整月*/ int fullMonth = totalMonth % 12; /*計算天數(shù)*/ DateTime changeDate = beginDateTime.AddMonths(totalMonth); double days = (endDateTime - changeDate).TotalDays; } } }
再簡單一些:
public int CalculateAgeCorrect(DateTime birthDate, DateTime now) { int age = now.Year - birthDate.Year; if (now.Month < birthDate.Month || (now.Month == birthDate.Month && now.Day < birthDate.Day)) age--; return age; }
下面我們來看看常規(guī)方法:
方法1:
string m_Str = "1984-04-04"; int m_Y1 = DateTime.Parse(m_Str).Year; int m_Y2 = DateTime.Now.Year; int m_Age = m_Y2 - m_Y1; Response.Write(m_Age);
方法2:
如果你將日期格式化為yyyymmdd,并且從當前日子減去生日,最后去除4個數(shù)字,就得到年齡了:)
我相信這樣的方法可以用任何語言實現(xiàn):
20080814-19800703=280111
去除最后4位 = 28.
int now =int.Parse(DateTime.Today.ToString("yyyyMMdd")); int dob =int.Parse(dateDOB.ToString("yyyyMMdd")); string dif =(now - dob).ToString(); string age ="0"; if(dif.Length>4) age = dif.Substring(0, dif.Length-4);
方法3:
DateTime now =DateTime.Today; int age = now.Year- bday.Year; if(bday > now.AddYears(-age)) age--;
以上所述就是本文的全部內(nèi)容了,希望能對大家學習C#有所幫助。
相關(guān)文章
C#畢業(yè)設(shè)計之Winform零壓健身房管理系統(tǒng)
本文介紹了個人的《零壓健身房管理系統(tǒng)(扁平化)》的基本流程和功能點的介紹,虛心接受各位的意見,歡迎在提出寶貴的意見,大家一起探討學習2021-09-09c#異步操作后臺運行(backgroundworker類)示例
這篇文章主要介紹了c#異步操作后臺運行(backgroundworker類)示例,需要的朋友可以參考下2014-04-04