计算 是否按时答复,
2个日期 参数,1个 返回值,
参数:一个是 开启日期, 一个是 答复日期,
开启日期 + 3个工作日 ,去掉周六、周日、1月1、5月1、10月1、10月2、10月3
然后和 答复日期 做比较,
开启日期 + 3个工作日 小于 答复日期 返回"否", 大于 答复日期 返回 "是"
简单点说就是,给你一个任务,让你3个工作日内完成,
如果遇到上面的周末,节假日什么的,就顺延。。。
有什么好的方法吗???
------解决方案--------------------
create or replace function ff_isdafu(in_start in date, in_end in date)
return varchar2 is
v_ret varchar2(10) := '二者相等';
v_start date;
v_end date;
i number := 1;
v_flag number := 0;
begin
loop
if v_flag < 3 then
v_start := in_start + i;
if to_char(v_start, 'd') not in ('1', '7') and
to_char(v_start, 'mmdd') not in ('0101', '0501', '1001', '1002', '1003') then
v_end := v_start;
v_flag := v_flag + 1;
end if;
else
exit;
end if;
i := i + 1;
end loop;
if v_end > in_end then
v_ret := 'YES';
elsif v_end < in_end then
v_ret := 'NO';
end if;
return v_ret;
end;