Вы ищете DateTime.DaysInMonth () .
Вам нужно будет проанализировать вводимые пользователем данные в целое число с помощью Int32.TryParse()
, а затем передать полученное целое число в DaysInMonth()
вместе с текущим годом, к которому можно получить доступ через DateTime.Now.Year
Пример:
Dim userMonth As String
' Prompt the user to enter the month and assign it to userMonth.
Dim iMonth As Integer = 0
If Int32.TryParse(userMonth, iMonth) AndAlso (iMonth >= 1 And iMonth <= 12) Then
Dim iDaysInMonth As Integer = DateTime.DaysInMonth(DateTime.Now.Year, iMonth)
Dim sMonthName As String = Microsoft.VisualBasic.DateAndTime.MonthName(iMonth)
MessageBox.Show($"Days in month {sMonthName}: {iDaysInMonth}")
Else
MessageBox.Show($"Invalid month specified: {userMonth}", "Error")
End If
Вы также не можете проверить значение iMonth
и обернуть вызов DateTime.DaysInMonth()
в блок try / catch, так как он выдаст ArgumentOutOfRangeException
, если iMonth
неверно.