Получение короткого имени дня

Мне было интересно, как написать метод, который вернет мне строку, которая будет содержать короткое имя дня, например:

    public static string GetShortDayName(DayOfWeek day)

теперь, если я вызываю:

        string monday = GetShortDayName(DayOfWeek.Monday);

Я вернусь "mo", если культура en, или "lu", если культура, например, это.

Ответы

Ответ 1

Вы можете использовать DateTimeFormatInfo.AbbreviatedDayNames. Например:

string[] names = culture.DateTimeFormat.AbbreviatedDayNames;
string monday = names[(int) DayOfWeek.Monday];

Ответ 2

Ближе всего вы можете использовать пользовательскую строку формата даты и времени - в частности ddd.

Это вернет аббревиатуру - вы можете подстроить результат, чтобы получить до 2 символов.

Вам нужно будет использовать DateTime с днем, соответствующим желаемому дню недели.

Ответ 3

DateTimeFormatInfo.ShortestDayNames

Получает или задает массив строк из кратчайших уникальных сокращенных имен дней, связанных с текущим объектом DateTimeFormatInfo.

Ответ 4

попробовать:

CultureInfo english = new CultureInfo("en-US");
string sunday = (english.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday]).Substring(0, 2);

Или:

dateTimeFormats = new CultureInfo("en-US").DateTimeFormat;
string sunday = (dateValue.ToString("dddd", dateTimeFormats)).Substring(0, 2);