Функция определения - рабочий ли день
Скачать (rar-файл; Размер - 1271)Обсудить в форуме
Описание
Функция определения - рабочий ли день через список с инвертированными праздничными днями через хэш.
идея такая - если выходной день выпадает на пн-пт, то заносим его в хэш.
если сб или вс объявлен рабочим - то тоже добавляем.
создается инвертированный список.
где пригодится - сами знаете
идея такая - если выходной день выпадает на пн-пт, то заносим его в хэш.
если сб или вс объявлен рабочим - то тоже добавляем.
создается инвертированный список.
где пригодится - сами знаете
Текст примера
if(evd_is_workday(date(31,1,2011)) [#] (последний день месяца - рабочий); end; // если добавить эти функции - то можно вычислить рабочий день например на конец вклада dt={curdate}+91;//вклад на 91 день msgbox(evd_ymd_next_work(dt)); macro evd_ymd_prev(d,n) if(valtype(n)==V_UNDEF) n=1; end; return(d-n); end; macro evd_ymd_next(d,n) if(valtype(n)==V_UNDEF) n=1; end; return(d+n); end; macro evd_ymd_prev_work(d,n) var k=0; if(valtype(d)==V_UNDEF) d={curdate}; end; if(valtype(n)==V_UNDEF) n=1; end; while(k<n) d=evd_ymd_prev(d); if(evd_is_workday(d)) k=k+1; end; end; return(d); end; macro evd_ymd_next_work(d,n) var k=0; if(valtype(d)==V_UNDEF) d={curdate}; end; if(valtype(n)==V_UNDEF) n=1; end; while(k<n) d=evd_ymd_next(d); if(evd_is_workday(d)) k=k+1; end; end; return(d); end;