Member 13037817 Ответов: 4

Калькулятор возраста в visual studio


Я хотел бы создать простую программу, которая позволит пользователю вставить сегодняшнюю дату (в 3 разных текстовых поля как dd/mm/yy) и свой день рождения (опять же в 3 разных текстовых поля), а затем вычислить его текущий возраст.

[^]

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

Я следовал учебнику на youtube, однако расчет неверен.

Пока что это код.
Dim d1, m1, y1 As Integer
Dim d2, m2, y2 As Integer
d1 = Val(TextBox1.Text)
m1 = Val(TextBox2.Text)
y1 = Val(TextBox3.Text)
d2 = Val(TextBox4.Text)
m2 = Val(TextBox5.Text)
y2 = Val(TextBox6.Text)

If d1 < d2 Then
    d1 = d1 - 30
    m1 = m1 - 1
End If

If m1 < m2 Then
    m1 = m1 - 12
    y1 = y1 - 1
End If

Label8.Text = y1 - y2 : Label7.Text = m1 - m2 : Label6.Text = d1 - d2

4 Ответов

Рейтинг:
2
Рейтинг:
2

Patrice T

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
1

Peter Leow

Плохая идея. Почему?
1. Там нет необходимости, чтобы задать пользователю для ввода сегодняшней даты, только кода его помощью значение datetime.Сегодня Собственность (Система)[^]
2.Не спрашивайте дату с помощью текстовых полей. Что делать, если пользователь вводит недопустимые значения для года, месяца или дня? Использовать Класс DateTimePicker (System.Окна.Формы)[^] вместо.
3. при расчете возраста проверьте это: рассчитать возраст[^]


Рейтинг:
0

OriginalGriff

Это немного сложно, но не так уж и плохо.
Видеть здесь: Работа с возрастом: это не то же самое, что временной промежуток![^]- сам код написан на C#, но это довольно очевидно, и если вы не можете его понять, то используйте это: Преобразователь Кодов[^] который преобразует его в VB.