I'm not going to sit here and claim to know how it works. But the web site claimed to correctly compute Easter Sunday from 1900 to 2099. It even talked about four specific years where the base computation was a week off, so I felt pretty confident with the computation. I put everything into a script library that could be reused to compute the date for Easter Sunday. The function takes an integer year and returns a NotesDateTime object. If the passed-in year is less than 1900 or geater than 2099, then the function returns the keyword Nothing. Here is the function:

Function EasterSunday(inpYear As Integer) As NotesDateTime

' Compute Easter Sunday if the year is in the range 1900 to 2099. If the year is outside

' of that range, return NOTHING.

Dim a As Integer

Dim b As Integer

Dim c As Integer

Dim d As Integer

Dim e As Integer

Dim tempDate As Variant

Dim retVal As NotesDateTime

If inpYear < 1900 Or inpYear > 2099 Then

Set EasterSunday = Nothing

Exit Function ' =====================

End If

a = inpYear Mod 19

b = inpYear Mod 4

c = inpYear Mod 7

d = ( (a*19) + 24) Mod 30

e = ( (b*2) + (c*4) + (d*6) + 5) Mod 7

If (22+d+e) <= 31 Then

tempDate = Datenumber(inpYear, 3, (22+d+e))

Else

tempDate = Datenumber(inpYear, 4, (d+e-9))

End If

Set retVal = New NotesDateTime(tempDate)

If ( (inpYear = 1954) Or (inpYear = 1981) Or (inpYear = 2049) Or (inpYear = 2076) ) Then

Call retVal.AdjustDay(-7)

End If

Set EasterSunday = retVal

End Function