Подтвердить что ты не робот

Преобразование имени месяца в целое число

Я быстро поискал это и был удивлен, не найдя его нигде.

В основном ищет конвертировать полные месячные имена (январь, сентябрь и т.д.) в эквивалентное число, которое будет использоваться в формате mm/dd/yyyy.

Я могу собрать свой собственный массив и вытащить его соответствующим образом, но должен быть быстрый и простой метод. Правильно?

4b9b3361

Ответ 1

Вы можете использовать строку формата MMMM для полного имени месяца.

См. пользовательские строки формата DateTime в MSDN.

Dim fullMonthName as DateTime
fullMonthName = DateTime.ParseExact("26 January 2010", "dd MMMM yyyy", 
                                           CultureInfo.InvariantCulture)

Ответ 2

Dim monthName = "September"
Dim monthNumber = DateTime.ParseExact(monthName, "MMMM", CultureInfo.CurrentCulture).Month

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

Если, однако, это не относится к пользовательскому вводу, я бы предложил использовать какую-то статическую коллекцию (будь то словарь или перечисление).

Ответ 3

Назовите меня сумасшедшим, но разве это не означает, что перечислить? Возможно, стоит подумать о том, чтобы код был как можно более простым. http://visualbasic.about.com/od/usingvbnet/a/enum01.htm

Ответ 4

В моем случае я использовал этот трюк

  • Создать 2 combobox
  • материал combobox1 с именами месяцев
  • материал combobox2 с годами

а затем этот

    Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
        MsgBox(System.DateTime.DaysInMonth(ComboBox2.Text,   ComboBox1.SelectedIndex + 1), MsgBoxStyle.Information)
    End Sub

Ответ 5

Это может звучать долгое время, почему бы не использовать инструкцию IF или Select Case.

If Month = "January" Then MonthNum = "1"
Else If Month = "February" Then .......