Here you can call the function
It takes two parameters (year and month) and returns an array (1 to 7) from Sunday to Saturday the number of days in a month
Function Days(yr As Long, mn As Long) As Variant Dim First As Date Dim FirstDay As Long Dim DaysInMonth As Long Dim DayCount(1 To 7) As Long Dim i As Long DayCount(1) = 4 DayCount(2) = 4 DayCount(3) = 4 DayCount(4) = 4 DayCount(5) = 4 DayCount(6) = 4 DayCount(7) = 4 First = DateSerial(yr, mn, 1) DaysInMonth = DateSerial(yr, mn + 1, 1) - First FirstDay = Weekday(First) For i = FirstDay To DaysInMonth + FirstDay - 28 - 1 DayCount((i - 1) Mod 7 + 1) = 5 Next Days = DayCount End Function
UPDATE:
to use this to get the number of fridays per month use
Fridays = Days(2012, 2)(6) ' For Fridays in Fedruary 2012
Update 2:
Taking Brettd's recommendations
To return a string, for example "Fridays = 4", use
Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")(6) & " = " & Days(2012, 2)(6)
source share