38 lines
2.5 KiB
Text
38 lines
2.5 KiB
Text
Public Sub Main()
|
|
Dim aMonth As Short[] = [1, 3, 5, 7, 8, 10, 12] 'All 31 day months
|
|
Dim aMMStore As New String[] 'To store results
|
|
Dim siYear, siMonth, siCount As Short 'Various variables
|
|
Dim dDay As Date 'To store the day to check
|
|
Dim sTemp As String 'Temp string
|
|
|
|
For siYear = 1900 To 2100 'Loop through each year
|
|
For siMonth = 0 To 6 'Loop through each 31 day month
|
|
dDay = Date(siYear, aMonth[siMonth], 1) 'Get the date of the 1st of the month
|
|
If WeekDay(dDay) = 5 Then aMMStore.Add(Format(dDay, "mmmm yyyy")) 'If the 1st is a Friday then store the result
|
|
Next
|
|
Next
|
|
|
|
For Each sTemp In aMMStore 'For each item in the stored array..
|
|
Inc siCount 'Increase siCount
|
|
If siCount < 6 Then Print aMMStore[siCount] 'If 1 of the 1st 5 dates then print it
|
|
If siCount = 6 Then Print String$(14, "-") 'Print a separator
|
|
If siCount > aMMStore.Max - 4 Then Print aMMStore[siCount - 1] 'If 1 of the last 5 dates then print it
|
|
Next
|
|
|
|
Print gb.NewLine & "Total months = " & Str(siCount) 'Print the number of months found
|
|
|
|
siCount = 0 'Reset siCount
|
|
sTemp = aMMStore.Join(",") 'Put all the stored dates in one string joined by commas
|
|
aMMStore.Clear 'Clear the store for reuse
|
|
|
|
For siYear = 1900 To 2100 'Loop through each year
|
|
If Not InStr(sTemp, Str(siYear)) Then 'If the year is not in the stored string then..
|
|
Inc siCount 'Increase siCount (Amount of years that don't have 5 weekend months)
|
|
aMMStore.Add(Str(siYear)) 'Add to the store
|
|
End If
|
|
Next
|
|
|
|
Print gb.NewLine & "There are " & Str(siCount) &
|
|
" years that do not have at least one five-weekend month" 'Print the amount of years with no 5 weekend months
|
|
Print aMMStore.Join(",") 'Print the years with no 5 weekend months
|
|
End
|