Количество дней в которых было выполнено некоторое условие в БП

Здравствуйте!
Скажите пожалуйста как в БП посчитать количество дней в текущем месяце в которых например было 30 исходячих звонков длительностью больше 30 сек?

И как посчитать в БП количество всего робочих дней в этом месяце ?
Спасибо!

Нравится

1 комментарий

Добрый день.
1. Кол-во дней в месяце с заданными условиями
1. Определить временной интервал (начало и конец периода). Например, добавить параметры startDate, endDate, oneDay (startDate.AddDays(1)).
2. Добавить счетчик. Параметр в котором будет хранится кол-во дней c интересующими условиями.
Процесс:
1) Читать данные в звонках. Читать кол-во записей где: тип – исходящий, продолжительность>30, CallDate >= startDate, CallDate < oneDay
2) Потоки:
- условный. Если Пункт 1 >= 30 - записываем в счетчик + 1. startDate и oneDay увеличиваем на 1 день и возвращаемся к пункту 1
- поток по умолчанию. startDate и oneDay увеличиваем на 1 день и возвращаемся к пункту 1
- условный. Если oneDay = endDate – завершить процесс

2. Кол-во рабочих дней.
Самый простой способ - посчитать кол-во дней в месяце и отнять кол-во дней, которые = суббота или воскресенье.
Достаточно базовых методов DateTime - https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx
Пример также можно найти в схеме CalendarUtilities (пакет Project).

Показать все комментарии