# Date Function : IsGoodFriday

CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

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                                    *
'*****************************************************************
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)

bIsGoodFriday = dGoodFriday = dCompare_date

End Function
```