如何计算生日到年龄

时间:2015-12-09 01:46:15

标签: c# .net visual-studio datetime

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;

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

3 个答案:

答案 0 :(得分:1)

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

如果您想要多年的差异,可以参考此thread

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; 

答案 1 :(得分:0)

如果您想计算非常精确,请尝试以下操作:

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

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

但是......不是每年都是365天。你必须考虑闰年的条件。

给你一个线索:如果你的年龄是25岁,假设每年是365天,那么剩下的日子是365 * 25 + x(1 <= x <= 365)..等等。

答案 2 :(得分:0)

请参阅: Calculate age in C#

但你必须问自己必要的精确度,因为时区会影响这一点。在极少数情况下会出现一些歧义。例如,如果这是你的生日,当你在一个时区只有17岁但在另一个时区有18岁就犯了罪,那就会出现问题。如果答案很关键,那么您需要向用户提供某种消息,以解释一些计算年龄的变幻莫测。