Вы можете использовать отличную библиотеку Umbrella :
using nVentive.Umbrella.Extensions.Calendar;
DateTime beginning = DateTime.Now.BeginningOfWeek();
Однако они делают , похоже, хранятся в понедельник в качестве первого дня неделю (см. свойство nVentive.Umbrella.Extensions.Calendar.DefaultDateTimeCalendarExtensions.WeekBeginsOn
), так что предыдущее локализованное решение немного лучше.
Редактирование: взглянув на вопрос, похоже, что Umbrella может работать и на этом:
// Or DateTime.Now.PreviousDay(DayOfWeek.Monday)
DateTime monday = DateTime.Now.PreviousMonday();
DateTime sunday = DateTime.Now.PreviousSunday();
Хотя стоит отметить, что если вы попросите предыдущий понедельник в понедельник он даст вам семь дней назад. Но это также верно, если вы используете BeginningOfWeek
, что похоже на ошибку: (.