C#计算准确的年龄

reg*_*EAH 7 c#

任何人都知道如何根据日期(出生日期)获得年龄

我想到这样的事情

string age = DateTime.Now.GetAccurateAge();
Run Code Online (Sandbox Code Playgroud)

输出将是20年5月20日的一些事情

Luk*_*keH 44

public static class DateTimeExtensions
{
    public static string ToAgeString(this DateTime dob)
    {
        DateTime today = DateTime.Today;

        int months = today.Month - dob.Month;
        int years = today.Year - dob.Year;

        if (today.Day < dob.Day)
        {
            months--;
        }

        if (months < 0)
        {
            years--;
            months += 12;
        }

        int days = (today - dob.AddMonths((years * 12) + months)).Days;

        return string.Format("{0} year{1}, {2} month{3} and {4} day{5}",
                             years, (years == 1) ? "" : "s",
                             months, (months == 1) ? "" : "s",
                             days, (days == 1) ? "" : "s");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @LukeH:谢谢.最新版本通过了我的所有测试! (2认同)