Member 13343055 Ответов: 2

Как я могу подтвердить день рождения?


я хочу проверить день рождения, где, если пользователь выберет дату сегодня, система выдаст сообщение об ошибке " недействительный день рождения"

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

Дим, а дата значения свойства selecteddate = dtbday.Текст
Если Выбрана Дата.Тошортдатестринг = Дата.Значит Сегодня
Ящик для сообщений.Show ("выбранная дата не является допустимым днем рождения"," ошибка", MessageBoxButtons.Хорошо, MessageBoxIcon.Восклицание)
еще
.....

Richard MacCutchan

Используйте DatePicker, а не текстовое поле, чтобы разрешить ввод даты. Таким образом, вы можете гарантировать, что это будет, по крайней мере, действительная дата, даже если она не соответствует ограничениям вашей заявки. Хотя вы можете наложить определенные ограничения на объект DatePicker.

2 Ответов

Рейтинг:
2

Richard Deeming

dtbday.Text вернется а String, который может содержать что угодно. Нет никакой гарантии, что он может быть преобразован в Date. Использовать Дата.Метод tryparse[^], чтобы попытаться преобразовать его в дату и предупредить пользователя, если он не может быть преобразован.

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

Dim SelectedDate As Date
If Not Date.TryParse(dtbday.Text, SelectedDate) Then
    MessageBox.Show("The entered text is not a valid date", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    
ElseIf SelectedDate.Date > DateTime.Today Then
    MessageBox.Show("Your date of birth cannot be in the future", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    
End If


Member 13343055

это работает! спасибо, приятель! ты спас меня уже два раза :)

Member 13343055

последующий вопрос. пожалуйста помочь. я получаю эту ошибку с вашим заданным кодом.
Преобразование из строки "" В тип date недопустимо.
что же мне делать?

Richard Deeming

По какой линии?

Member 13343055

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

Richard Deeming

Что ж, отладьте свой код и выясните, какая строка вызывает исключение.

Насколько я могу судить, ни один из опубликованных мной кодов не выдаст эту ошибку. Так что если только в доме не происходит что-то странное. Text имущественный аксессор, я не вижу, что могло бы его вызвать.

Рейтинг:
2

PauloJuanShirt

Тошортдатестринг отформатирует его в удобном для отображения формате в зависимости от вашей локализации.

Вы должны сделать сравнение даты.

Попробовать это.

Если Выбрано Значение Дата = Дата.Сегодня


Member 13343055

это не работает