Не включайте 2-й диапазон дат в 1-й диапазон дат - PullRequest
0 голосов
/ 09 декабря 2018
   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).Как бы я пошел по этому поводу?

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