Нужна помощь, как получить первую дату и последнюю дату недели в текущем месяце.
Ниже того, что я сделал до сих пор, но все еще подпадают под определенный случай, особенно когда дата начала и дата окончания - воскресенье:
var givenDate = new DateTime(2018,4,1);
var intervalToStart = givenDate.DayOfWeek - DayOfWeek.Monday;
var startDate = givenDate.AddDays(-intervalToStart);
DateTime endDate;
int intervalToEnd = 0;
if (startDate.Month != givenDate.Month)
startDate = new DateTime(givenDate.Year, givenDate.Month, 1);
var dayOfWeekStartDate = startDate.DayOfWeek.ToString().ToLower();
switch (dayOfWeekStartDate)
{
case "sunday": intervalToEnd = 0;
break;
case "monday": intervalToEnd = 6;
break;
case "tuesday": intervalToEnd = 5;
break;
case "wednesday": intervalToEnd = 4;
break;
case "thursday": intervalToEnd = 3;
break;
case "friday": intervalToEnd = 2;
break;
case "saturday": intervalToEnd = 1;
break;
}
endDate = startDate.AddDays(intervalToEnd);
Console.WriteLine(startDate);
Console.WriteLine(endDate);
Случай 1:
Заданная дата: 05 мая 2018 года (суббота)
Первое число недели: 01 мая 2018 года (вторник)
Последняя неделя недели: 06 мая 208 (воскресенье)
Дело 2:
Заданная дата: 09 мая 2018 года (среда)
Первое число недели: 07 мая 2018 года (понедельник)
Последняя дата недели: 13 мая 2018 (воскресенье)
Дело 3:
Заданная дата: 01 апреля 2018 года (воскресенье)
Первое число недели: 01 апреля 2018 года (воскресенье)
Последняя неделя недели: 01 апреля 2018 (воскресенье)
дело 4:
Указана дата: 02 июня 2018 года (суббота)
Первое число недели: 01 июня 2018 (пятница)
Последняя неделя недели: 3 июня 2018 (воскресенье)
Концепция или ответ высоко ценится.
Заранее спасибо.