lena和shane,家庭日志,xulavigne,Lena&Shane

如何实现

C# 根据出生日期计算年龄

2017-10-12 Shane Jhu

在项目中常常遇到从身份证号码中自动取出生日并计算出年龄的需求,取出生日简单,截取字符串就行,年龄,有需要精确到月的,有精确到天的,本文分享根据出生日期计算年龄的方法(C#)。

先用今天的年份减生日的年份,然后判断生日的月/日在今天之前还是之后,来决定是不是需要减1年(未满周岁的情况)。


代码如下:

/// <summary>
/// 将出生日期转换为年龄
/// <para>精确到月</para>
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public static int ToAgeAccToMonth(DateTime target)
{
    DateTime a = target; //小日期
    DateTime b = DateTime.Now; //大日期
    if (a > b)
    {
        return 0;
    }
    else
    {
        return (((b.Year - a.Year) * 12) + (b.Month - a.Month)) / 12;
    }
}

/// <summary>
/// 将出生日期转换为年龄
/// <para>精确到天</para>
/// </summary>
/// <param name="target"></param>
/// <returns></returns>
public static int ToAgeAccToDay(DateTime target)
{
    DateTime a = target; //小日期
    DateTime b = DateTime.Now; //大日期
    if (a > b)
    {
        return 0;
    }
    else
    {
        return (((b.Year - a.Year) * 12) + (b.Month - a.Month)) / 12 + ((b.Year == a.Year && b.Month == a.Month && b.Day < a.Day) ? -1 : 0);
    }

}


计算年龄的方法很多,虽然写法不同,但计算思维基本都是一样的。

本文由lenashane.com原创,转载请注明出处:查看原文

如果觉得文章还不错,请点个赞吧

11月 1 2020
让你的孩子每当想到公正和诚实,就会想到你。

小杰克森·布朗 (H. Jackson Brown Jr. 美国作家)