.net 根据生日计算年龄
时间:2010-09-28 来源:交友乐
背景:当用户输入生日时,需要根据当前日期计算用户的年龄
开发工具:vs2008
这是一个比较简单的问题,但是搜了一下网上,发现都是错误的算法。有些网站提供的算法居然是日期直接除以365,小学生都不会犯这种错,难道都不考虑闰年的吗?这种文章还到处转载,简直是误人子弟。提供一个正确的算法,需要说明的是,如果某人生日是2.29日,那么第二年2.28不认为满岁,如果你的业务需要算成满岁请自己调整一下判断条件。
/// <summary>
/// 根据生日和生效日计算年龄
/// </summary>
/// <param name="birthDate">生日</param>
/// <param name="inceptionDate">用于计算生日的基准日期</param>
/// <returns></returns>
public static int CalculateAge(DateTime birthDate, DateTime inceptionDate)
{
// cache the current time
// get the difference in years
int years = inceptionDate.Year - birthDate.Year;
// subtract another year if we're before the
// birth day in the current year
if (inceptionDate.Month < birthDate.Month || (inceptionDate.Month == birthDate.Month && inceptionDate.Day < birthDate.Day)) //如果需要考虑2.29日的情况请自己修改判断条件
--years;
return years;
}
广告:
交友乐www.jyoule.com是一个最新的免费婚恋交友平台,使用简单,会员可以免费查看联系方式。