web-dev-qa-db-fra.com

Obtenir un nom de jour court

Je me demandais comment écrire une méthode qui me renverrait une chaîne qui contiendrait le nom du jour court, exemple:

    public static string GetShortDayName(DayOfWeek day)

maintenant si j'appelle:

        string monday = GetShortDayName(DayOfWeek.Monday);

Je reviendrai "mo" si la culture est en, ou "lu" si la culture en est un exemple.

20
MaiOM

Vous pouvez utiliser DateTimeFormatInfo.AbbreviatedDayNames . Par exemple:

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

Le plus proche que vous pouvez obtenir est d'utiliser une chaîne de format de date et d'heure personnalisée - spécifiquement ddd.

Cela renverra une abréviation - vous pouvez sous-chaîne le résultat pour obtenir 2 caractères.

Vous devrez utiliser un DateTime avec un jour correspondant au jour de la semaine que vous souhaitez.

10
Oded
DateTimeFormatInfo.ShortestDayNames

Obtient ou définit un tableau de chaînes des noms de jours abrégés uniques les plus courts associés à l'objet DateTimeFormatInfo actuel.

4
dedpichto

Vous pouvez utiliser "ddd" dans un chaîne de format personnalisé pour obtenir le nom du jour court. Par exemple.

DateTime.Now.ToString("ddd");

Comme le suggère @Loudenvier dans les commentaires.

4
mcNux

essayer:

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

Ou:

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