DateTime startDate1 = (DateTime)StartDate;
DateTime endDate1 = (DateTime)EndDate;
DayOfWeek? day = db.DayOfWeek;
var dayCount = dates.Count(x => x.DayOfWeek == day);
List<DateTime> dates =
Enumerable.Range(0, (int)((EndDate - StartDate).TotalDays) + 1)
.Select(n => StartDate.AddDays(n))
.ToList();
DateTime startDate1 = new DateTime(2018, 11, 01);
DateTime endDate1 = new DateTime(2018, 11, 30);
DateTime startDate2 = new DateTime(2018, 11, 25);
DateTime endDate2 = new DateTime(2018, 11, 30);
if ((startDate2 >= startDate1 && startDate2 <= endDate1) ||
(endDate2 >= startDate1 && endDate2 <= endDate1))
Я хочу посчитать число DayOfWeek внутри диапазона startDate1 и endDate1 и полностью исключить startDate2 и endDate2 из этого диапазона.
В приведенных выше примерах мой текущий код возвращает «4» по понедельникам, когда я хочу, чтобы он возвращал «3».
Допустим, что endDate1 теперь (2018, 12, 31) иостальные даты одинаковы, для понедельника должно возвращаться число «8» вместо «9».
По сути, я хочу исключить диапазон (2) из числа независимо от того,находится в пределах / перекрывает диапазон (1).Как бы я пошел по этому поводу?