Mile-O
Back once again...
- Local time
- Today, 09:21
- Joined
- Dec 10, 2002
- Messages
- 11,316
As I said, don't know if all the holidays are relevant but:
Code:
Public Function GetAmericanHoliday(ByVal intYear As Integer, _
intHoliday As Integer) As Date
Dim intAdditions(0 To 4) As Integer
Dim intMonths(0 To 4) As Integer
Dim intDays As Integer
Dim dteStart As Date ' create a preliminary starting point
Dim intWeekday As Date ' create a store for weekday calcualtions
' This function deals with five American holidays.
' Whichever holiday you wish calculated is received in the
' intHoliday parameter. The holidays are:
' 0: President's Day (third Monday in February)
' 1: Memorial Day (last Monday in May)
' 2: Labor Day (first Monday in September)
' 3: Columbus Day (second Monday in October)
' 4: Thanksgiving Day (fourth Thursday in November)
' check intHoliday falls within expected numbers
If intHoliday < 0 Or intHoliday > 4 Then Exit Function
intAdditions(0) = 14
intAdditions(1) = -7
intAdditions(2) = 0
intAdditions(3) = 7
intAdditions(4) = 21
intMonths(0) = 2
intMonths(1) = 6
intMonths(2) = 9
intMonths(3) = 10
intMonths(4) = 11
intDays = IIf(intHoliday = 4, 5, 2)
dteStart = DateSerial(intYear, intMonths(intHoliday), 1)
intWeekday = WeekDay(dteStart)
GetAmericanHoliday = dteStart + IIf(intDays < intWeekday, 7 - intWeekday + intDays, intDays - intWeekday) + intAdditions(intHoliday)
End Function
Last edited: