1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| create or replace function test(dt_deb in date, dt_fin in date) return number is
v_nb number;
v_date date;
v_datH date;
begin
v_nb:=0;
v_date:= dt_deb;
if dt_deb<= dt_fin then
while (v_date>= dt_deb) and (v_date<= dt_fin)
loop
select to_char(to_date(v_date),'DD/MM/YYYY','nls_calendar=''Arabic Hijrah''')
into v_datH
from dual;
if (substr(v_datH,1,5) in ('01/01','10/01', '12/03', '01/10', '02/10','10/12','11/12')) and
(upper(trim(to_char(to_date(TO_char(v_date,'DD/MM/YYYY'),'DD/MM/YYYY'),'DAY'))) not in ('VENDREDI','SAMEDI')) then
v_nb:= v_nb+1;
end if;
v_date := v_date + 1;
end loop;
return (v_nb);
end if;
end test; |
Partager