Я хочу рассчитать год рождения, взяв его текущий возраст, - PullRequest
0 голосов
/ 08 марта 2012

Я хочу рассчитать год рождения, взяв его текущий возраст, например, его возраст 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.

Ответы [ 5 ]

6 голосов
/ 08 марта 2012

Похоже, вы конвертируете way слишком много вещей в строки без всякой причины.

Если вы всегда хотите отобразить 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

Обратите внимание, что «dob» в «txt_dob» неуместно, так как это не дата рождения пользователя , просто 1 января в их годурождение , которое очень отличается.

2 голосов
/ 08 марта 2012

Вы можете создать дату и время с данным годом.

Итак, рассчитайте год.(Текущий год - Возраст в годах).

int Age = 30; // obtain from your given field.
int YofBirth = DateTime.Now.Year - Age;

DateTime d = new DateTime(YofBirth , 1, 1);

Затем используйте это Datetime d для установки поля.

2 голосов
/ 08 марта 2012

Должно быть что-то вроде этого:

txt_dob.Text = DateTime.Now.AddYears(int.Parse(txt_age.Text) * -1).ToString("01/01/yyyy");
1 голос
/ 08 марта 2012

Попробуйте это

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;
0 голосов
/ 08 марта 2012

Примерно так:

int age;
if(int.TryParse(txt_age.Text,out age))
{
    txt_dob.Text= new DateTime(DateTime.Now.Year-age,1,1).ToShortDateString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...