DateTime.ParseExact(monthName, "MMMM", CultureInfo.CurrentCulture ).Month
, Хотя в Ваших целях Вы, вероятно, будете более обеспечены просто создание Dictionary<string, int>
отображение имени месяца к его значению.
Вы могли сделать что-то вроде этого:
Convert.ToDate(month + " 01, 1900").Month
Если Вы используете DateTime.ParseExact()
- метод, который предложили несколько человек, необходимо тщательно рассмотреть то, что Вы хотите произойти когда выполнение приложения в неанглийской среде!
В Дании, которая из ParseExact("Januar", ...)
и ParseExact("January", ...)
должна работать и которая должна перестать работать?
, Который будет различием между CultureInfo.CurrentCulture
и CultureInfo.InvariantCulture
.
Можно использовать DateTime. Метод синтаксического анализа, чтобы получить DateTime возражает и затем проверить его свойство Month. Сделайте что-то вроде этого:
int month = DateTime.Parse("1." + monthName + " 2008").Month;
прием должен создать допустимую дату для создания объекта DateTime.
Можно использовать перечисление месяцев:
public enum Month
{
January,
February,
// (...)
December,
}
public Month ToInt(Month Input)
{
return (int)Enum.Parse(typeof(Month), Input, true));
}
я не на 100% уверен относительно синтаксиса для перечисления. Синтаксический анализ (), все же.
Если Вы используете c# 3.0 (или выше) можно использовать расширители
Этот код помогает Вам...
using System.Globalization;
....
string FullMonthName = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.UtcNow.Month);
Метод GetMonthName - это возвращает строку...
, Если Вы хотите получить месяц как целое число, затем просто, используйте -
DateTime dt= DateTime.UtcNow;
int month= dt.Month;
я надеюсь, оно помогает Вам!!!
Спасибо!!!