Member 12605293 Ответов: 3

Я должен получить возраст автоматически, заполнив дату рождения


Привет , я попробовал приведенный ниже код и не знаю, где я должен передать это со значением, потому что значение заполняется пользователем.

Что я уже пробовал:

private static int CalculateAge(DateTime DOB)
{
    int age = 0;
    age = DateTime.Now.Year - DOB.Year;

    if (DateTime.Now.DayOfYear < DOB.DayOfYear)
      age = age - 1;

    return age;
}

protected void Calendar1_SelectionChanged1(object sender, EventArgs e)
{
    txtbox2.Text = Calendar1.SelectedDate.ToString();
    //int CalculateAge()

    Calendar1.Visible = false;
    txtAge.Text= CalculateAge()
}

Tomas Takac

Что мешает вам передать значение методу?

Member 12605293

Привет том
Не знаю, куда передать, будь то в коде позади или на странице aspx

Member 12605293

Привет
Пожалуйста, предоставьте код для этого, я не получу вас

3 Ответов

Рейтинг:
2

StM0n

Я не совсем уверен, если ваш

Calendar1.SelectedDate
уже есть DateTime.

Если это так, то вы должны передать это в качестве аргумента в свою функцию. Если нет, то вы должны разобрать значение на DateTime а потом передай.


Рейтинг:
2

anup.bhunia

то, что я понимаю, что вы не уверены, что это за событие, вы должны обрабатывать, чтобы отразить возраст сразу после ввода возраста, а не после потери фокуса. если это настольное приложение, то должно было быть какое-то событие on change или событие нажатия клавиши. Но вы должны проверить, что дата действительна, прежде чем вычислять возраст.

Надеюсь, это вам поможет.


Рейтинг:
1

ridoy

Воспользуйся значение datetime.Разбор или значение datetime.Метод parseexact чтобы преобразовать ваш Calendar1.Значения свойства selecteddate.Метод toString() к объекту DateTime и просто передайте этот объект методу CalculateAge (..). Это все.

Образец:
Используйте его внутри Calendar1_SelectionChanged1(...),

DateTime txtMyDate = 
  DateTime.ParseExact(txtbox2.Text, "M/d/yyyy", CultureInfo.InvariantCulture);
Также можно использовать значение datetime.Метод tryparseexact.


Member 12605293

Привет Видите ли, это мой кусок кода ,и все, что мне нужно, - это получить возраст TxtAge.txt texbox как 50, 51.Как я могу добиться этого нужны плагины?

охраняемых недействительными Calendar1_SelectionChanged1(объект отправителя, EventArgs в электронной)
{
txtDob.Текст = Calendar1.Значения свойства selecteddate.Метод toString();
Calendar1.Видна = ложь;

TxtMyDate датавремя = Датавремя.Метод parseexact(txtAge.Текст, "м/д/гггг", CultureInfo.Языка и региона существует);


}

Member 12605293

Привет
Я пробовал таким образом, но результат показывает мне ошибку преобразования int в string

мой код
охраняемых недействительными Calendar1_SelectionChanged1(объект отправителя, EventArgs в электронной)
{
txtDob.Текст = Calendar1.Значения свойства selecteddate.Метод toString();
Calendar1.Видна = ложь;
int year = DateTime.Now.Год - Calendar1.Значения свойства selecteddate.Год;
инт месяцев = дата и время.Сейчас.Месяц - Calendar1.Значения свойства selecteddate.Месяц;

строки ageval = ((год - 1) + "лет" + (-12 месяцев) + " месяцев");

если (месяцев > 12)
{
год = год + 1;
}
значение инт = инт.Синтаксический анализ(ageval);
значение = (метод toString(txtAge.Текст)) ;