Как разобрать название месяца (строку) в целое число для сравнения в C #? - PullRequest
88 голосов
/ 03 ноября 2008

Мне нужно иметь возможность сравнивать названия некоторых месяцев в массиве.

Было бы неплохо, если бы был какой-то прямой путь:

Month.toInt("January") > Month.toInt("May")

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

Ответы [ 12 ]

0 голосов
/ 07 сентября 2012

Я использовал SimpleDateFormat, чтобы создать строку формата, проанализировать текст по дате и затем извлечь из него месяц. Код ниже:

int year = 2012 \\or any other year
String monthName = "January" \\or any other month
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
int monthNumber = format.parse("01-" + monthName + "-" + year).getMonth();
0 голосов
/ 09 ноября 2010
Public Function returnMonthNumber(ByVal monthName As String) As Integer
    Select Case monthName.ToLower
        Case Is = "january"
            Return 1
        Case Is = "february"
            Return 2
        Case Is = "march"
            Return 3
        Case Is = "april"
            Return 4
        Case Is = "may"
            Return 5
        Case Is = "june"
            Return 6
        Case Is = "july"
            Return 7
        Case Is = "august"
            Return 8
        Case Is = "september"
            Return 9
        Case Is = "october"
            Return 10
        Case Is = "november"
            Return 11
        Case Is = "december"
            Return 12
        Case Else
            Return 0
    End Select
End Function

код предупреждения в бета-версии.

...