Mi ricordo di un'altra discussione...
Prova con questa procedura:
codice:
Private Sub CalcoloGiorni(ByVal Mese As Byte, ByVal Anno As Integer, _
ByRef Giorni As Byte, ByRef PrimoDelMese As String)
Dim DataC As Date
DataC = CDate("01/" & CStr(Mese) & "/" & CStr(Anno))
PrimoDelMese = WeekdayName(Weekday(DataC, vbMonday))
Select Case Mese
Case Is = 1
Giorni = 31
Case Is = 2
If Anno Mod 4 = 0 Then
Giorni = 29
Else
Giorni = 28
End If
Case Is = 3
Giorni = 31
Case Is = 4
Giorni = 30
Case Is = 5
Giorni = 31
Case Is = 6
Giorni = 30
Case Is = 7
Giorni = 31
Case Is = 8
Giorni = 31
Case Is = 9
Giorni = 30
Case Is = 10
Giorni = 31
Case Is = 11
Giorni = 30
Case Is = 12
Giorni = 31
End Select
End Sub
Che richiami facilmente:
codice:
Dim Giorni As Byte
Dim Primo As String
Call CalcoloGiorni(2, 2004, Giorni, Primo)
MsgBox CStr(Giorni) & " " & Primo