如何计算来自dob的年龄在c#中
这个问题在这里已经有了答案:
您可以使用TimeSpan来计算它,例如:
DateTime dob = .....
DateTime Today = DateTime.Now;
TimeSpan ts = Today - dob;
DateTime Age = DateTime.MinValue + ts;
// note: MinValue is 1/1/1 so we have to subtract...
int Years = Age.Year - 1;
int Months = Age.Month - 1;
int Days = Age.Day - 1;
资料来源:http://forums.asp.net/t/1289294.aspx/1
DateTime today = DateTime.Today;
int age = today.Year - bday.Year;
if (bday > today.AddYears(-age))
age--;
[更新]:考虑闰年使用365.242而不是365.你应该是好的,直到我相信2799年。
DateTime有一个运算符重载,当你使用减运算符时,你得到一个TimeSpan实例。
所以你只会这样做:
DateTime dob = ..
TimeSpan tm = DateTime.Now - dob;
int years = ((tm.Days)/365);
你的代码应该看起来像这样:
private void button1_Click(object sender, EventArgs e)
{
DateTime dob = //get this some somewhere..
textBox1.Text = dob.ToString();
TimeSpan tm = (DateTime.Now - dob);
int age = (tm.Days/365) ;
}
TimeSpan结构表示一个时间间隔,它具有像Days
, Hours
, Seconds
等属性,所以如果需要的话可以使用它们。