I was wondering on how to write a method that will return me a string which will contain the short day name, example:
public static string GetShortDayName(DayOfWeek day)
now if i call:
string monday = GetShortDayName(DayOfWeek.Monday);
I will get back "mo" if culture is en, or "lu" if culture is at example it.
You can use DateTimeFormatInfo.AbbreviatedDayNames
. For example:
string[] names = culture.DateTimeFormat.AbbreviatedDayNames;
string monday = names[(int) DayOfWeek.Monday];
The closest you can get is use a custom date and time format string - specifically ddd
.
This will return an abbreviation - you can substring the result to get to 2 characters.
You will need to use a DateTime
with a day corresponding to the day of week you wish.
You can use "ddd" in in a custom format string to get the short day name. For example.
DateTime.Now.ToString("ddd");
As suggestby @Loudenvier in comments.
DateTimeFormatInfo.ShortestDayNames
Gets or sets a string array of the shortest unique abbreviated day names associated with the current DateTimeFormatInfo object.
try:
CultureInfo english = new CultureInfo("en-US");
string sunday = (english.DateTimeFormat.DayNames[(int)DayOfWeek.Sunday]).Substring(0, 2);
Or:
dateTimeFormats = new CultureInfo("en-US").DateTimeFormat;
string sunday = (dateValue.ToString("dddd", dateTimeFormats)).Substring(0, 2);