When I worked for an insurance company, Good Friday was a work day but not a business day. Only certain batch processes needed to run.
'***************************************************************** '* Function Name : bIsGoodFriday * '* Created By : Thomas A. Cassano * '* date : 00/00/98 * '* Purpose : Determines whether the day is Good Friday * '* Arguments : dCompare_date * '* Returns : Boolean * '* Comments : None * '***************************************************************** Function bIsGoodFriday(dCompare_date as date) as Boolean Dim iCurrent_Year as Integer Dim a, b, c, d, e as Integer Dim dEasterSunday as date Dim dGoodFriday as date Dim iDayOfEasterSunday as Integer Dim iMonthOfEasterSunday as Integer iCurrent_Year = Year(dCompare_date) a = iCurrent_Year Mod 19 b = iCurrent_Year Mod 4 c = iCurrent_Year Mod 7 d = (19 * a + 24) Mod 30 e = (2 * b + 4 * c + 6 * d + 5) Mod 7 iDayOfEasterSunday = 22 + d + e iMonthOfEasterSunday = 3 If iDayOfEasterSunday > 31 then iDayOfEasterSunday = d + e - 9 iMonthOfEasterSunday = 4 End If If iDayOfEasterSunday = 26 And iMonthOfEasterSunday = 4 then iDayOfEasterSunday = 19 End If If iDayOfEasterSunday = 25 And iMonthOfEasterSunday = 4 And d = 28 And _ e = 6 And a > 10 then iDayOfEasterSunday = 18 End If dEasterSunday = DateSerial(iCurrent_Year, iMonthOfEasterSunday, _ iDayOfEasterSunday) dGoodFriday = DateAdd("d", -2, dEasterSunday) bIsGoodFriday = dGoodFriday = dCompare_date End Function