年龄计算
可能重复:
我如何用C#计算某人的年龄?
我正在尝试创建一个表单,其中输入了客户的出生日期,并且他的年龄在txtAge中自动显示:
private void Form3_Load(object sender, EventArgs e)
{
dtpDob.Value = DateTime.Today.Date;
SqlConnection conn = new SqlConnection();
}
private void dtpDOB_Leave(object sender, System.EventArgs e)
{
System.DateTime dob = default(System.DateTime);
dob = dtpDob.Value.Date;
txtAge.Text = DateTime.DateDiff(DateInterval.Year, dob, DateTime.Today.Date);
}
但是我得到这些错误:
'System.DateTime'不包含'DateDiff'的定义。
名称'DateInterval'在当前上下文中不存在。
public static int GetAge(DateTime birthDate)
{
return (int)Math.Floor((DateTime.Now - birthDate).TotalDays / 365.242199);
}
您需要导入VB库才能使用DateDiff
,并且它不是DateTime
结构的一部分。
尽管使用DateDiff
不能正确计算年龄,但它只会给出日期年份之间的差异,而不是年份之间的差异。
计算年龄的一个简单方法是将出生日期增加一年,直到您通过今天的日期:
private void dtpDOB_Leave(object sender, System.EventArgs e) {
System.DateTime dob = default(System.DateTime);
dob = dtpDob.Value.Date;
int age = -1;
DateTime today = DateTime.Today;
while (dob <= today) {
age++;
dob = dob.AddYears(1);
}
txtAge.Text = age.ToString();
}
注意:这个计算考虑了闰年,所以你会得到实际的年龄,而不是近似值。
试试这个在几天内的年龄:
txtAgeInDays.Text = (DateTime.Now - dob).ToString ("dddddd");
请参阅http://msdn.microsoft.com/en-us/library/system.timespan.tostring.aspx
链接地址: http://www.djcxy.com/p/54365.html上一篇: age calculation