Мне нужно создать код, который будет делать следующее. Пользователь вводит только цифры, которые я закодировал с помощью события нажатия клавиши. Далее длина даты может быть длиной всего 8 символов. mm/dd/yy Также в этом состоянии мне нужно, чтобы месяц, день и год сохранялись в разных переменных, чтобы я мог проверять индивидуально, если правильная дата каждого месяца, дня и года верна. например, у нас не более 12 месяцев в году. Поэтому я думал об использовании подстроки, чтобы разделить одну переменную, которая содержит ввод текстового поля, а затем проверять индивидуально.Visual Studio/Visual Basic Текстовое поле получает только форматированную дату
Я действительно понимаю, что есть встроенные функции, но в этом случае мне не разрешено использовать их.
Private Sub btnCheckDate_Click(sender As Object, e As EventArgs) Handles btnCheckDate.Click
Dim strDate As String
Dim badDate As Boolean = False
strDate = txtInput.TabIndex
If strDate.Length <> 8 Then
MessageBox.Show("Bad date")
txtInput.Text = String.Empty
txtInput.Focus()
End If
Dim intMonth As Integer
Dim intDay As Integer
Dim intYear As Integer
intMonth = CInt(strDate.Substring(0, 2))
Используйте 'Date.ParseExact (strDate," MM/dd/yy ", CultureInfo.InvariantCulture) вместо. Вы можете использовать 'Date.TryParseExact' с тем же форматом для проверки ввода. –
Что вы подразумеваете под «Я не могу использовать встроенные функции»? 'Substring' - это« встроенная функция »(как« Date.Parse »или любой другой метод, который вы хотите вызвать). – pescolino
Я предполагаю, что это означает функции проверки даты. Используйте подстроку, чтобы отрубить ее, преобразовать в int, а затем проверить каждое значение. Я хотел бы получить дополнительный кредит и разрешить 8 или 10 символов (MM/DD/YYYY), поскольку он изменит только то, как вы собираете стоимость за год. Переход на дополнительный экстренный кредит, чтобы сделать каждую проверку вызванной функцией, возвращающей T/F. Подсказка: сделайте месяц первым. – Plutonix