Sleekmac
07-18-2007, 03:42 PM
Don't know if anybody but me will find this useful, but here it is. You can change it to any weekday on any interval by changing the values 15-21. (The logic is based on the fact that the third Wed of every month must necessarily be between the 15th and 21st inclusive.)
Function thirdWedofMonth(dte As Date) As Integer
Dim thisMonth As Integer, thisDay As Integer, thisYear As Integer
thisMonth = Month(dte)
thisDay = Day(dte)
thisYear = Year(dte)
If Weekday(DateValue(thisMonth & "/" & 15 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 15
If Weekday(DateValue(thisMonth & "/" & 16 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 16
If Weekday(DateValue(thisMonth & "/" & 17 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 17
If Weekday(DateValue(thisMonth & "/" & 18 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 18
If Weekday(DateValue(thisMonth & "/" & 19 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 19
If Weekday(DateValue(thisMonth & "/" & 20 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 20
If Weekday(DateValue(thisMonth & "/" & 21 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 21
End Function
Function thirdWedofMonth(dte As Date) As Integer
Dim thisMonth As Integer, thisDay As Integer, thisYear As Integer
thisMonth = Month(dte)
thisDay = Day(dte)
thisYear = Year(dte)
If Weekday(DateValue(thisMonth & "/" & 15 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 15
If Weekday(DateValue(thisMonth & "/" & 16 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 16
If Weekday(DateValue(thisMonth & "/" & 17 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 17
If Weekday(DateValue(thisMonth & "/" & 18 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 18
If Weekday(DateValue(thisMonth & "/" & 19 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 19
If Weekday(DateValue(thisMonth & "/" & 20 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 20
If Weekday(DateValue(thisMonth & "/" & 21 & "/" & thisYear)) = vbWednesday Then thirdWedofMonth = 21
End Function