Lo potresti fare con la funzione WeekDay.
Ti ho fatto un esempio:
Adesso se vuoi sapere ad esempio quanti e quali sono i giovedì puoi fare così:codice:Dim Cont1 As Integer Dim Data1 As Date Dim NumTemp1 As Byte Dim StrTemp1 As String Dim Giorni(6, 4) As Byte Dim NumGiorni(6, 0) As Byte Data1 = CDate(Now) For Cont1 = 1 To GiorniDelMese(Month(Data1), Year(Data1)) Data1 = CDate(Format(Cont1, "00") & "/" & CStr(Month(Now)) & "/" & CStr(Year(Now))) NumTemp1 = (Weekday(Data1) - 1) Giorni(NumTemp1, NumGiorni(NumTemp1, 0)) = Cont1 NumGiorni(NumTemp1, 0) = NumGiorni(NumTemp1, 0) + 1 Next Cont1
Serve però anche una funzione che restituisca il numero di giorni del mese scelto:codice:MsgBox CStr(NumGiorni(4, 0)) 'Numero di giovedì For Cont1 = 0 To (NumGiorni(4, 0) - 1) StrTemp1 = StrTemp1 & CStr(Giorni(4, Cont1)) & " " Next Cont1 StrTemp1 = RTrim(StrTemp1) 'Tutti i giovedì del mese in StrTemp1 MsgBox StrTemp1
Ciaocodice:Private Function GiorniDelMese(ByVal Mese As Byte, ByVal Anno As Integer) As Byte Select Case Mese Case Is = 1 GiorniDelMese = 31 Case Is = 2 If Anno Mod 4 = 0 Then GiorniDelMese = 29 Else GiorniDelMese = 28 End If Case Is = 3 GiorniDelMese = 31 Case Is = 4 GiorniDelMese = 30 Case Is = 5 GiorniDelMese = 31 Case Is = 6 GiorniDelMese = 30 Case Is = 7 GiorniDelMese = 31 Case Is = 8 GiorniDelMese = 31 Case Is = 9 GiorniDelMese = 30 Case Is = 10 GiorniDelMese = 31 Case Is = 11 GiorniDelMese = 30 Case Is = 12 GiorniDelMese = 31 Case Else GiorniDelMese = 0 End Select End Function

Rispondi quotando