Giorni festivi + Domeniche +Stanto patrono + Pasqua + Pasquetta

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
22.622
1.733
Como
2011MAC 2016WIN
510
In collaborazione con ggratis @ggratis abbiamo scritto questa Function che trova tutti i giorni festivi, comprese le domeniche, la Pasqua,la pasquetta e opzionalmente anche il Santo patrono

Visual Basic:
Function FestiviNonFestivi(ScegliGiorno As Date, Optional Santopatrono As String = "01/01") As String
    'by ges e ggratis - ForumExcel.it
    Dim anno As Integer
    Dim Pasqua As Date
    Dim data As Date
    Dim Feste As Variant
    Dim Pasquetta As Date
    Dim a, b, c, p, q, r
    data = CDate(ScegliGiorno)
    anno = Year(ScegliGiorno)
    a = anno Mod 19: b = anno \ 100: c = anno Mod 100
    p = (19 * a + b - (b \ 4) - ((b - ((b + 8) \ 25) + 1) \ 3) + 15) Mod 30
    q = (32 + 2 * ((b Mod 4) + (c \ 4)) - p - (c Mod 4)) Mod 7
    r = (p + q - 7 * ((a + 11 * p + 22 * q) \ 451) + 114)
    Pasqua = DateSerial(anno, r \ 31, (r Mod 31) + 1)
    Pasquetta = Pasqua + 1
    Feste = Array("01/01", "06/01", "25/04", "01/05", "02/06", "15/08", "01/11", "08/12", "25/12", "26/12," & Pasqua & Pasquetta & CDate(Santopatrono))
    If Weekday(CDate(ScegliGiorno)) = 1 Or (UBound(Filter(Feste, Format(ScegliGiorno, "dd/mm"))) > -1) Then
        FestiviNonFestivi = True
    Else
        FestiviNonFestivi = False
    End If
End Function
Al posto dell'Array può essere usata la funzione Split
Visual Basic:
Feste = Split("01/01,06/01,25/04,01/05,02/06,15/08,01/11,08/12,25/12,26/12," & Pasqua & "," & Pasquetta & "," & SantoPatrono, ",")
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!