Как проанализировать имя месяца (строка) к целому числу для сравнения в C#?

89
задан Joe Doyle 1 May 2012 в 00:12
поделиться

7 ответов

DateTime.ParseExact(monthName, "MMMM", CultureInfo.CurrentCulture ).Month

, Хотя в Ваших целях Вы, вероятно, будете более обеспечены просто создание Dictionary<string, int> отображение имени месяца к его значению.

168
ответ дан Blair Conrad 24 November 2019 в 07:11
поделиться

Вы могли сделать что-то вроде этого:

Convert.ToDate(month + " 01, 1900").Month
20
ответ дан Aaron Palmer 24 November 2019 в 07:11
поделиться

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

В Дании, которая из ParseExact("Januar", ...) и ParseExact("January", ...) должна работать и которая должна перестать работать?

, Который будет различием между CultureInfo.CurrentCulture и CultureInfo.InvariantCulture.

19
ответ дан Liam 24 November 2019 в 07:11
поделиться

Можно использовать DateTime. Метод синтаксического анализа, чтобы получить DateTime возражает и затем проверить его свойство Month. Сделайте что-то вроде этого:

int month = DateTime.Parse("1." + monthName + " 2008").Month;

прием должен создать допустимую дату для создания объекта DateTime.

8
ответ дан Rune Grimstad 24 November 2019 в 07:11
поделиться

Можно использовать перечисление месяцев:

public enum Month
{
    January,
    February,
    // (...)
    December,
}    

public Month ToInt(Month Input)
{
    return (int)Enum.Parse(typeof(Month), Input, true));
}

я не на 100% уверен относительно синтаксиса для перечисления. Синтаксический анализ (), все же.

8
ответ дан Treb 24 November 2019 в 07:11
поделиться

Если Вы используете c# 3.0 (или выше) можно использовать расширители

1
ответ дан Adam Naylor 24 November 2019 в 07:11
поделиться

Этот код помогает Вам...

using System.Globalization;

....

string FullMonthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.UtcNow.Month);

Метод GetMonthName - это возвращает строку...

, Если Вы хотите получить месяц как целое число, затем просто, используйте -

DateTime dt= DateTime.UtcNow;
int month= dt.Month;

я надеюсь, оно помогает Вам!!!

Спасибо!!!

0
ответ дан 24 November 2019 в 07:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: