年龄计算

可能重复:
我如何用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

下一篇: Exact age calculation