关于c#:如何计算生日到年龄

How to calculate Birthday to Age

本问题已经有最佳答案,请猛点这里访问。
1
2
3
4
5
6
string birthDay ="";      
_birthDay = DateTime.Parse(this.BirthDay.Value.ToString()).ToString("yyyyMMdd");
                    DateTime today = DateTime.Today;
                    int age = today.Year - _birthDay.Year;
                    if (_birthDay > today.AddYears(-age)) age--;
    txtbox1.Text = age;

似乎是错误的,如何从出生日算起年龄?


1
int age = (DateTime.Today - _birthDay ).TotalDays;

如果你想用年计算差额,你可以参考这个线索。

1
2
3
4
TimeSpan span = DateTime.Today - _birthDay;
// because we start at year 1 for the Gregorian
// calendar, we must subtract a year here.
int age = (zeroTime + span).Year - 1;


见:以C为单位计算年龄#

但是你必须问问自己必要的精确性,因为时区会影响这一点。在极少数情况下会有一些含糊不清的地方。例如,如果今天是你的生日,而你在一个时区17岁,而在另一个时区18岁的时候犯了罪,那就有问题了。如果答案很关键,那么您需要向用户提供某种信息,以解释计算时代的一些变幻莫测。


如果要非常精确地计算它,请尝试以下操作:

最重要的是你出生后还有多少天。

第二件重要的事情是你出生后还有多少年。

但是…不是每年都是365天。你必须考虑闰年的情况。

给你一个提示:如果你25岁,假设每年365天,那么剩下的天数是365*25+x(1<=x<=365)等等。