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;
似乎错误,如何从出生日算出年龄?
答案 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岁就犯了罪,那就会出现问题。如果答案很关键,那么您需要向用户提供某种消息,以解释一些计算年龄的变幻莫测。