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