Kategorien
CodeArchiv Oracle

Oracle Bundeseinheitlicher Feiertag

Beschreibung

Mit dieser Funktion wird geprüft ob ein angegebenes Datum ein Bundeseinheitlicher Feiertag ist!
Diese Funktion benötigt die Funktion Oracle Feiertage berechnen und Oracle Ostersonntag berechnen.

Parameter

Parameter NameParameter Wert
datetocheckDatum das geprüft werden soll, ob es sich um ein Bundeseinheitlichen Feiertag handelt.

Rückgabe

Rückgabe TypRückgabe Wert
IntegerWahr = -1
Falsch = 0

Code

CREATE OR REPLACE FUNCTION isholiday(datetocheck DATE)
    RETURN INTEGER
IS
    RESULT     INTEGER;
    yeartocalc INTEGER;
BEGIN
    yeartocalc := to_number(to_char(datetocheck, 'YYYY'));
    IF datetocheck = holiday(1, yeartocalc) THEN
        --Neujahr
        RESULT := -1;
    ELSIF datetocheck = holiday(3, yeartocalc) THEN
        --Karfreitag
        RESULT := -1;
    ELSIF datetocheck = holiday(4, yeartocalc) THEN
        --Ostersonntag
        RESULT := -1;
    ELSIF datetocheck = holiday(5, yeartocalc) THEN
        --Ostermontag RESULT := -1;
    ELSIF datetocheck = holiday(6, yeartocalc) THEN
        --1. Mai
        RESULT := -1;
    ELSIF datetocheck = holiday(7, yeartocalc) THEN
        --Christi Himmelfahrt
        RESULT := -1;
    ELSIF datetocheck = holiday(8, yeartocalc) THEN
        --Pfingstmontag
        RESULT := -1;
    ELSIF datetocheck = holiday(11, yeartocalc) THEN
        --Tag der dt. Einheit
        RESULT := -1;
    ELSIF datetocheck = holiday(15, yeartocalc) THEN
        --1. Weihnachtsfeiertag
        RESULT := -1;
    ELSIF datetocheck = holiday(16, yeartocalc) THEN
        --2. Weihnachtsfeiertag RESULT := -1;
    ELSE
        RESULT := 0;
    END IF;
    RETURN(RESULT);
END isholiday;

Download