|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
DECLARE FUNCTION NAMED_DAYS_BETWEEN(VP_MIN IN DATE, VP_MAX IN DATE, VP_DAY IN VARCHAR2) RETURN NUMBER IS BEGIN RETURN TRUNC(NEXT_DAY(VP_MAX, VP_DAY) - NEXT_DAY(VP_MIN - 1, VP_DAY)) / 7; END; FUNCTION BUSINESS_DAYS_BETWEEN(VP_MIN IN DATE, VP_MAX IN DATE) RETURN NUMBER IS BEGIN RETURN VP_MAX - VP_MIN -(NAMED_DAYS_BETWEEN(VP_MIN, VP_MAX, 'SAT') + -- German: SA NAMED_DAYS_BETWEEN(VP_MIN, VP_MAX, 'SUN')) + 1; -- German: SO END; BEGIN DBMS_OUTPUT.PUT_LINE('Business Days: ' || BUSINESS_DAYS_BETWEEN(SYSDATE, SYSDATE + 15)); END; |