Можно ли считать числовое значение DayOfWeek допустимым? - программирование
Подтвердить что ты не робот

Можно ли считать числовое значение DayOfWeek допустимым?

У меня есть день недели, хранящийся в базе данных, где Sunday = 1, Monday = 2 и т.д.

В запросе из базы данных мне нужно преобразовать день в System.DayOfWeek.

Согласно MSDN:

Значение констант в этом перечислении варьируется от DayOfWeek.Sunday до DayOfWeek.Saturday. Если его отличить от целого числа, его значение варьируется от нуля (что указывает DayOfWeek.Sunday) на шесть (что указывает DayOfWeek.Saturday).

Это означает, что после запроса данных мне нужно вычесть 1, прежде чем преобразовать результат в DayOfWeek.

Это безопасно? Или мне нужно беспокоиться о изменении числовых значений DayOfWeek?

4b9b3361

Ответ 1

Да, это безопасно, вы не должны беспокоиться о изменениях ценностей. Вот как определяется перечисление:

public enum DayOfWeek
{
    Sunday = 0,
    Monday = 1,
    Tuesday = 2,
    Wednesday = 3,
    Thursday = 4,
    Friday = 5,
    Saturday = 6
}

Если эти значения изменяются в BCL, многие из кода будут разбиты.

Ответ 2

Да, всегда безопасно, вы можете вернуться назад и вперед:

return DateTime.Today.AddDays(-1);

и

return DateTime.Today.AddDays(1);