﻿CREATE FUNCTION dbo.VerificaFestivo
(
    @DataInput VARCHAR(8)
)
RETURNS VARCHAR(8)
AS
BEGIN
    DECLARE @DataFeriale DATE
    -- Converte la stringa di input nel formato data
    SET @DataInput = CONVERT(VARCHAR, @DataInput, 112)
    SET @DataFeriale = CAST(@DataInput AS DATE)
    -- Verifica se la data è sabato o domenica
    IF DATEPART(WEEKDAY, @DataFeriale) = 7 -- 7 = Sabato
    BEGIN
        -- Se è sabato, restituisci la giornata precedente
        SET @DataFeriale = DATEADD(DAY, -1, @DataFeriale)
    END
    ELSE IF DATEPART(WEEKDAY, @DataFeriale) = 1 -- 1 = Domenica
    BEGIN
        -- Se è domenica, restituisci la giornata successiva
        SET @DataFeriale = DATEADD(DAY, 1, @DataFeriale)
    END
    -- Formatta la data nel formato desiderato e restituisci come stringa
    RETURN CONVERT(VARCHAR(8), @DataFeriale, 112)
END;