Получить даты прошлой недели только для понедельника и воскресенья

#c#

#c#

Вопрос:

Я пытаюсь получить рабочую дату прошлой недели, то есть понедельник и воскресенье. Следующий синтаксис дает мне понедельник текущей недели, но не прошлой недели.

   DateTime thisMonday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek   (int)DayOfWeek.Monday);
 

Я изо всех сил пытаюсь получить только даты понедельника и воскресенья на прошлой неделе, а не время.

Комментарии:

1. linq работает с типами, похожими на коллекции — в чем проблема?

2. DateTime.Date

3. Вы знаете, как получить понедельник на этой неделе, но не знаете, как вычесть 7 дней?

4. @TimSchmelter Это не щелкнуло. Спасибо за вашу помощь.

Ответ №1:

не время

DateTime.Today дает вам дату только в 0:00. DateTime.Now дает вам ту же дату, включая время.

Я изо всех сил пытаюсь получить даты прошлой недели в понедельник и воскресенье

Просто вычтите 1 неделю …

 DateTime thisMonday = DateTime.Now.AddDays(-(int)DateTime.Today.DayOfWeek   (int)DayOfWeek.Monday);
DateTime lastMonday = thisMonday.AddDays(-7);
Console.WriteLine(lastMonday);
 

Если вам не нравится магическое число 7, вы можете использовать

 Enum.GetNames(typeof(DayOfWeek)).Length