Как получить все даты между каждыми интервалами дат начала и окончания, используя c # - PullRequest
1 голос
/ 08 июля 2019

Мне нужно рассчитать количество рабочих дат, исключая праздничные дни между каждым интервалом старта и остановки. В моем приложении есть кнопка для запуска и остановки. Мне удалось получить число дат между первой датой начала и датой последней остановки, но мне нужно также удалить интервалы между каждой датой остановки и датой начала. Любая помощь будет цениться.

Я создал этот метод для подсчета количества дней:

  public int ElapseDays(string caseNo )
        {
            int count = 0;
            int weekEndsCount;
            Boolean excludeWeekends = true;

            using (var db = new EMSDEntities())
            {
                var q = (from a in db.SY_HOLIDAYS
                         orderby a.HLD_DATE
                         select new HolidayListViewModel
                         {
                            HolidayDate = a.HLD_DATE,

                         }).ToList();

                var startDate = DateTime.Parse("01/07/2019"); 
                var StopDate = DateTime.Parse("08/07/2019"); 

                for (DateTime index = startDate; index < StopDate; index = index.AddDays(1))
                {
                    if (excludeWeekends && index.DayOfWeek != DayOfWeek.Sunday && index.DayOfWeek != DayOfWeek.Saturday)
                    {
                        bool excluded = false;
                        for (int i = 0; i < q.Count; i++)
                        {
                            if (index.Date.CompareTo(q[i].HolidayDate) == 0)
                            {
                                excluded = true;
                                break;
                            }
                        }

                        if (!excluded)
                        {
                            count++;
                        }
                    }
                }
                weekEndsCount = count;

            }


            return weekEndsCount;
        }

Это дает мне o / p: 6, после удаления субботы и воскресенья

Ожидаемый результат

<!DOCTYPE html>
<html>
<body>

<h2>Basic HTML Table</h2>

<table style="width:100%">
  <tr>
    <th>start_date</th>
    <th>end_date</th> 
  </tr>
  <tr>
    <td>01/07/2019</td>
    <td>03/07/2019</td>

  </tr>
  <tr>
    <td>05/07/2019</td>
    <td>08/07/2019</td>
  </tr>
</table>

</body>
</html>

Ожидаемое о / п: 5

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