我想计算出生年份的年龄,例如他的年龄是30岁,在datetimepicker框中,日期应该显示为01/01/1982
。它应该是自动计算。
int todayyears = int.Parse (DateTime.Now.Year.ToString());
int a = int.Parse (int.Parse(txt_age.Text).ToString());
string dif = (todayyears - a).ToString();
txt_dob.Text = dif;
此处txt_age
是给定的输入值,txt_dob
在txt_age
中给出的输入后自动显示出生日期。
答案 0 :(得分:6)
您似乎无缘无故地将方式过多的东西转换为字符串。
如果始终想要显示1月1日,您只需要:
// Note: use int.TryParse to avoid exceptions if the user input isn't an integer
int age = int.Parse(txt_age.Text);
DateTime date = new DateTime(DateTime.Today.Year - age, 1, 1);
txt_dob.Text = date.ToString(); // Or use a specific format
请注意,“txt_dob”中的“dob”不合适,因为这不是用户的出生日期,只是在出生年份的1月1日非常不同。
答案 1 :(得分:2)
应该是这样的:
txt_dob.Text = DateTime.Now.AddYears(int.Parse(txt_age.Text) * -1).ToString("01/01/yyyy");
答案 2 :(得分:2)
您可以使用给定年份创建日期时间。
所以计算一年。 (本年度 - 年龄)。
int Age = 30; // obtain from your given field.
int YofBirth = DateTime.Now.Year - Age;
DateTime d = new DateTime(YofBirth , 1, 1);
然后使用此Datetime d设置字段。
答案 3 :(得分:1)
试试这个
int todayyears = DateTime.Now.Year;
int a = int.Parse(txt_age.Text);
string dob = new DateTime(todayyears - a, DateTime.Today.Month, DateTime.Today.Day);
txt_dob.Text=dob;
答案 4 :(得分:0)
这样的事情:
int age;
if(int.TryParse(txt_age.Text,out age))
{
txt_dob.Text= new DateTime(DateTime.Now.Year-age,1,1).ToShortDateString();
}