Io l'ho risolto così in un progettino VB, non è difficile riadattarlo in ASP

NOTE:
la funzione Feste (date1, Date2) ti ritorna le feste tra due date....
La funzione PasquaGregoriana serve solo per eliminare il giorno
di Pasquetta, in quant Pasqua cade sempre di domenica
l'array festivita comprende le varie feste che ti interessano

+-------------------------------------------------------------------------
Public Function PasquaGregoriana(Anno%) As Date
Dim a%, b%, c%, p%, q%, r%
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)
PasquaGregoriana = DateSerial(Anno%, r \ 31, (r Mod 31) + 1)
End Function

Private Function IsFest(Date1 As Date) As Boolean
Dim Festivita, DayCount, i As Integer

Festivita = Array("1/1/", "6/1/", "25/4/", "1/5/", "2/7", "15/8", "1/11", "8/12", "25/12", "26/12")
For i = 0 To 9
Festivita(i) = Festivita(i) & Str(Year(Date1))
Next
IsFest = False
For Each DayCount In Festivita
If Date1 = DayCount Then IsFest = True
Next
'Controllo PASQUETTA (perchè pasqua cade sempre di Domenica)
If Date1 = DateAdd("d", 1, PasquaGregoriana(Year(Date1))) Then IsFest = True
End Function

Private Function Feste(Date1 As Date, Date2 As Date) As Integer
Dim Cont As Date
Feste = 0
For Cont = Date1 To Date2
If Weekday(Cont) = vbSunday Or IsFest(Cont) Then Feste = Feste + 1
Next
End Function

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.