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)等等。