CftClub.ru
Клуб специалистов ЦФТ-Банк

как посчитать колво рабочих дней между двумя датами из двух

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих
Предыдущая тема :: Следующая тема  
Автор Сообщение
kaa
Участник - экстремал


Вступление в Клуб: 20.01.2020
СообщениеПт Май 15, 2026 18:12   как посчитать колво рабочих дней между двумя датами из двух Ответить с цитатой
Полезность: Нет оценки
из двух календарей

например когда есть два календаря - Российские праздники и Китайские
Guest_SPb
Участник со стажем


Вступление в Клуб: 27.02.2014
СообщениеСб Май 16, 2026 09:16    Ответить с цитатой
Полезность: 1
Цикл по диапазону дат.
В цикле для каждой даты смотреть по каждому календарю - это рабочий день или нет. Если и там и там - рабочий день, то счётчик рабочих дней +1.
Нет?
Volod
Эксперт


Вступление в Клуб: 19.09.2007
СообщениеПн Май 18, 2026 14:00    Ответить с цитатой
Полезность: 1
RUNTIME.CALENDAR.DaysCount
kaa
Участник - экстремал


Вступление в Клуб: 20.01.2020
СообщениеВт Июн 02, 2026 11:36    Ответить с цитатой
Полезность: Нет оценки
сделал через цикл

Код:
function is_workday(dt date, CALEND_NAME string default 'HOLIDAYS') return boolean is
begin
  return ::[RUNTIME].[CALENDAR].Check_Date(CALEND_NAME, dt)='0';
end;

function diff_workday(d1 date, d2 date, c1 string default 'TRC', c2 string default 'TRC_AM') return number is
r   number:=0;
dt   date;
begin
   if(d1>d2) then
      r:=-1;
   else
      dt:=d1;
      while(dt<d2) loop
         if is_workday(dt,c1) and is_workday(dt,c2) then
            r:=r+1;
         end if;
         debug_pipe(to_char(dt,'dd.mm.yyyy')||' - '||r,0);
         dt:=dt+1;
        end loop;
   end if;
   return r;
end;
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Уроки ЦФТ-Банк для начинающих Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах