Системная константа для количества дней в неделе (7) - PullRequest
14 голосов
/ 07 января 2009

Может ли кто-нибудь найти константу в .NET Framework, которая определяет количество дней в неделе (7)?

DateTime.DaysInAWeek // Something like this???

Конечно, я могу определить свое собственное, но я бы предпочел, чтобы оно не было где-то там уже.

Обновление:

Я ищу это, потому что мне нужно разрешить пользователю выбирать неделю (по дате, а не по номеру недели) из списка в DropDownList.

Ответы [ 8 ]

21 голосов
/ 07 января 2009

Возможно, вы могли бы использовать System.Globalization.DateTimeFormatInfo.CurrentInfo.DayNames .Length.

8 голосов
/ 07 января 2009

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

Редактировать: я зависит, где вы хотите использовать эту константу. Внутри некоторого календарного алгоритма очевидно, что означает 7. С другой стороны, иногда называемые константами делают код намного более читабельным.

5 голосов
/ 07 января 2009

Попробуйте это:

Enum.GetNames(System.DayOfWeek).Length
3 голосов
/ 07 января 2009

Если вы посмотрите на код IL для Calendar.AddWeeks, вы увидите, что сама Microsoft использует в коде код 7.

Также в источнике ротора используется жесткий код 7.

Тем не менее, я бы предложил использовать const.

0 голосов
/ 07 января 2009

Я не уверен, что именно вы ищете, но вы можете попробовать DateHelper (CODE.MSDN) . Это библиотека, которую я собрал для типичных потребностей свиданий. Вы можете использовать методы недели или методы List. список методов

0 голосов
/ 07 января 2009

Вы имеете в виду календарные недели или просто обычные недели?

Очевидно, что есть календарные недели, которые могут быть короче, чем семь дней. Последняя календарная неделя года обычно короче, и в зависимости от вашего определения календарной недели первая неделя также может быть короче.

В таком случае, боюсь, вам придется развернуть собственную функцию продолжительности недели. С классом DateTime делать не сложно, я делал это раньше, если вам нужна дополнительная помощь, дайте мне знать.

0 голосов
/ 07 января 2009

GregorianCalendar имеет AddWeeks(1), что добавит 7 дней к дате.

0 голосов
/ 07 января 2009

Я не верю, что есть один. TimeSpan определяет константы для числа тиков на милли / секунду / минуту / час / день, но ничего на уровне недели.

Я выполнил запрос по стандартным библиотекам на символы (методы / константы / поля / и т.д.), содержащие слово «Неделя». Ничего не вернулся. К вашему сведению, я выполнил этот запрос, используя ReSharper.

...