Рассчитать выходные на неделю с субботы по пятницу - PullRequest
2 голосов
/ 23 мая 2011

Учитывая дату, я хотел бы рассчитать выходные (пятницу) для недели, начиная с субботы и заканчивая пятницей.

Я попробовал следующее, но возникли проблемы с февралем, 26.02.2011 дает 25.02.2011 вместо 03.04.2011

System.DateTime weekStart = thedate.AddDays(-Convert.ToInt32(theDate.DayOfWeek) - 1);
System.DateTime weekEnd = weekStart.AddDays(6);
Interaction.MsgBox(weekEnd.ToString());

Ответы [ 2 ]

3 голосов
/ 24 мая 2011

Когда вы проходите в субботу, вы вычитаете 7 дней вместо использования самого этого дня.

DateTime weekStart = theDate.DayOfWeek == DayOfWeek.Saturday
                     ? theDate
                     : theDate.AddDays(-Convert.ToInt32(theDate.DayOfWeek) - 1);

DateTime weekEnd = weekStart.AddDays(6);
1 голос
/ 24 мая 2011

Это будет делать:

System.DateTime weekStart = thedate.AddDays(-(Convert.ToInt32(thedate.DayOfWeek) + 1) % 7);
System.DateTime weekEnd = weekStart.AddDays(6);

В общем, убедитесь, что вычитаете не более 6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...