Как перечислить весь месяц имена, например, для комбинации?

68
задан shA.t 6 September 2017 в 14:37
поделиться

5 ответов

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

// Will return January
string name = DateTimeFormatInfo.CurrentInfo.GetMonthName(1);

или получить все имена:

string[] names = DateTimeFormatInfo.CurrentInfo.MonthNames;

можно также инстанцировать нового DateTimeFormatInfo на основе CultureInfo с DateTimeFormatInfo.GetInstance , или можно использовать текущую культуру CultureInfo.DateTimeFormat свойство.

var dateFormatInfo = CultureInfo.GetCultureInfo("en-GB").DateTimeFormat;

Имеют в виду, что календари в.Net поддерживают до 13 месяцев, таким образом Вы получите дополнительную пустую строку в конце для календарей только с 12 месяцами (такими как найденные в en-США или франк, например).

154
ответ дан Rosdi Kasim 24 November 2019 в 13:59
поделиться

Можно получить список локализованных месяцев от Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames и инвариантных месяцев от DateTimeFormatInfo.InvariantInfo.MonthNames.

string[] localizedMonths = Thread.CurrentThread.CurrentCulture.DateTimeFormat.MonthNames;
string[] invariantMonths = DateTimeFormatInfo.InvariantInfo.MonthNames;

for( int month = 0; month < 12; month++ )
{
    ListItem monthListItem = new ListItem( localizedMonths[month], invariantMonths[month] );
    monthsDropDown.Items.Add( monthListItem );
}

могла бы быть некоторая проблема с числом месяцев через год в зависимости от типа календаря, но я только что принял 12 месяцев в этом примере.

4
ответ дан shA.t 24 November 2019 в 13:59
поделиться

Попытайтесь перечислить имена месяца:

for( int i = 1; i <= 12; i++ ){
  combo.Items.Add(CultureInfo.CurrentCulture.DateTimeFormat.MonthNames[i]);
}

Это находится в Системе. Пространство имен глобализации.

Hope, которая помогает!

5
ответ дан Zachary Yates 24 November 2019 в 13:59
поделиться

Они определяются как массив в пространствах имен Глобализации.

using System.Globalization;

for (int i = 0; i < 12; i++) {
   Console.WriteLine(CultureInfo.CurrentUICulture.DateTimeFormat.MonthNames[i]);
}
12
ответ дан Dylan Beattie 24 November 2019 в 13:59
поделиться

Можно использовать следующее для возврата массива строки, содержащей имена месяца

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.MonthNames
19
ответ дан Rohan West 24 November 2019 в 13:59
поделиться
Другие вопросы по тегам:

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