Mi serve un calendario perpetuo in asp che data una data attraverso barra degli indirizzi, mi faccia comparire il mese (dell'anno indicato).
La qual cosa anche se reputo utilissima non sono ancora riuscito a trovare da nessuna parte...
Altrimenti sapete dirmi una formuletta per calcolare i giorni di un x mese di un y anno che me lo faccio da solo e ci perdo un po' di tempo?
Grazie a todos!
Calendario in Asp
-
- Veterano
OFFLINE - Iscritto il: 17 dic 2021
In VB6:
usa anche questa function, che però puoi evitare
Affidabilissima. La uso dal VB3 
Codice: [ Link visibile solo agli utenti registrati ]
Friend Function NumDays(ByVal vDate As String) As Integer
On Error Resume Next
'---------------------------------------------------------------------------
' stabilisce di quanti gg e' formato il mese attuale dell'anno attuale
'
' NOTA:
' La funzione restituisce -1 se la data è errata
' E' necessario passare la data nel formati:
' GGMMAAAA, GG/MM/AAAAA , MMAAAA, MM/AAAA
'---------------------------------------------------------------------------
Dim m As Integer ' mese
Dim y As Integer ' anno
Dim DayAdd As Byte
Dim tmp As String
If Len(vDate) < 8 Then
tmp = "01" + FilterStr("N", vDate)
Else
tmp = FilterStr("N", vDate)
End If
m = Val(Mid(tmp, 3, 2))
y = Val(Mid(tmp, 5, 4))
If (m < 1 Or m > 12) Or Len(tmp) Mod 2 <> 0 Then
NumDays = -1
Else
If m = 2 Then
' test se mese e' Febbraio
If y Mod 4 = 0 Or y Mod 400 = 0 Then
DayAdd = 1 ' L' anno e' bisestile
End If
End If
NumDays = Val(Mid(mx, m * 2 - 1, 2)) + DayAdd
End If
End Function
Codice: [ Link visibile solo agli utenti registrati ]
Friend Function FilterStr( _
ByVal optFilter As String _
, ByVal strValue As String _
, Optional ByVal OtherChr As String = strEmpty _
) As String
On Error Resume Next
'----------------------------------------------------------------------------
'La funzione è di tipo generico e permette di filtrare da una stringa di
'caratteri (StringValue) solo i caratteri specificati in optFilter con
'aggiunta di altri caratteri specificati in OtherChr..
'
'optFilter può assumere i seguenti valori:
'X = filtra solo i caratteri contenuti in OtherChr:M/n
'A = filtra solo i caratteri alfabetici M/m [ + OtherChr ]
'N = filtra solo i caratteri numerici [ + OtherChr ]
'A/N,A-N = filtra i caratteri alfabetici e numerici M/m [ + OtherChr ]
'
' NOTA:M/n = caratteri Maiusc. e min.
'----------------------------------------------------------------------------
Dim c As String
Dim t As String
Dim nw As String
Dim j As Integer
Dim tmp As String
tmp = strValue
If Len(tmp) > 0 Then
t = "QWERTYUIOPASDFGHJKLZXCVBNM0123456789"
Select Case UCaseTrim(optFilter)
Case "X"
t = UCase(OtherChr)
Case "A"
t = Left(t, 26) + UCase(OtherChr)
Case "N"
t = Mid(t, 27) + UCase(OtherChr)
Case "A/N", "A-N"
t = t + UCase(OtherChr)
Case Else
Exit Function
End Select
For j = 1 To Len(tmp)
c = Mid(tmp, j, 1)
If Asc(c) >= 32 And Asc(c) <= 127 Then
If InStr(t, UCase(c)) > 0 Then
nw = nw + c
End If
End If
Next
FilterStr = nw
Else
FilterStr = strEmpty & tmp
End If
End Function

-
- MODERATORE
OFFLINE - Iscritto il: 09 nov 2021
Codice: [ Link visibile solo agli utenti registrati ]
If m = 2 Then
' test se mese e' Febbraio
If y Mod 4 = 0 Or y Mod 400 = 0 Then
DayAdd = 1 ' L' anno e' bisestile
End If
End If
NumDays = Val(Mid(mx, m * 2 - 1, 2)) + DayAdd
End If
giuro non conoscevo la funzione mod risolvevo con la seguente masturbazione mentale:
Codice: [ Link visibile solo agli utenti registrati ]
year1 = int(year/4)
if (year - (year1 *4) = 0) then day = 29