Получить день недели из целочисленного значения дня

Я преобразовал несколько дней недели в соответствующие целочисленные значения.

Например: Tuesday, Thursday, Friday Как 2,4,5

Теперь мне нужно вернуться к дням из целых чисел.

Просто обратное тому, что я сделал.

Инверсия вопроса: Получить целочисленное значение дня недели

Есть ли простой стандартный способ получения дня недели из целочисленного значения в C#, иначе мне придется выполнять вычисления вручную с помощью метода?


person parkourkarthik    schedule 21.08.2014    source источник
comment
Вы имеете в виду, что если пользователь вводит 5, он должен вернуться в пятницу, верно?   -  person Neel    schedule 21.08.2014


Ответы (6)


попробуйте ниже код: -

Response.Write(Enum.GetName(typeof(DayOfWeek),5));

Выход:

Friday

и Если вам нужно преобразовать целые числа в дни недели, см. следующий пример для преобразования «2,4,5» с помощью LINQ.

var t = string.Join(",",
                 from g in "2,4,5".Split(new char[] { ',' })
                 select Enum.GetName(typeof(DayOfWeek), Convert.ToInt32(g)));
        Response.Write(t);

Выход:

Tuesday,Thursday,Friday

Для дополнительной информации: -

http://msdn.microsoft.com/en-us/library/system.enum.getname(v=vs.110).aspx

person Neel    schedule 21.08.2014
comment
Большое спасибо за ответ, а также за дополнительное преобразование типа LINQ. - person parkourkarthik; 22.08.2014

Пытаться

CultureInfo.CurrentCulture.DateTimeFormat.DayNames[day No]
person Gumzle    schedule 21.08.2014
comment
что, если он хочет несколько чисел, таких как 1,2,3? - person Neel; 21.08.2014
comment
И на случай, если кто-то ищет сокращения: CultureInfo.CurrentCulture.DateTimeFormat.AbbreviatedDayNames[day No] - person blub; 11.01.2017
comment
Отличный ответ, использует Framework BCL, а не код. - person Immortal; 01.12.2017

Добавляю свой ответ на случай, если он кому-нибудь пригодится:

((DayOfWeek)i).ToString();

Дает 0 = воскресенье, 1 = понедельник и т. д.

Для 0 = понедельник просто сдвиньте 1

((DayOfWeek)((i + 1) % 7)).ToString();
person mbdavis    schedule 21.12.2014

Enum.Parse(typeof(DayOfWeek),"0")

где "0" - строковый эквивалент целочисленного значения дня недели

person Manas    schedule 21.08.2014

В DateTime.Now DayOfWeek является значением перечисления, и вы можете получить его строковое значение, проанализировав его до соответствующих значений.

Enum.Parse(typeof(DayofWeek),"0")

Тогда вы получите желаемый результат.

person Chandra    schedule 21.08.2014

string.Format("{0:dddd}", value)

Использование перечисления не влияет на локализацию. Этот формат строки должен возвращать полное название дня в виде строки, локализованной для местного языка и региональных параметров.

class Program
{
    static void Main(string[] args)
    {
        var value = DateTime.Today;
        System.Console.WriteLine(string.Format("{0:dddd}", value));
    }
}

Вывод консоли от 11 марта 2020 г., языковой стандарт en-GB:

Wednesday
person kidshaw    schedule 21.08.2014
comment
Это возвращает дддд - person urza.cc; 10.03.2020
comment
Не на моей машине... Я включил образец в ответ - person kidshaw; 11.03.2020