------------------------------------------------------------ -- Easter.DT - an addition to DateTime.e - 2003 CyrekSoft -- ------------------------------------------------------------ global function easterSunday(integer y) -- returns a Date -- Adapted from an algorithm by J.-M. Oudin (1940) integer c, q, n, k, i, m, d c = floor(y / 100) q = c - floor(c / 4) n = remainder(y, 19) k = floor((c - 17)/ 25) i = remainder(q - floor((c - k)/ 3) + 19*n + 15, 30) k = floor(i / 28) i -= k * ( 1 + k * floor(29 /(i + 1)) * floor((n - 21)/ 11) ) i -= remainder(y + floor(y / 4) - q + i + 2, 7) m = 3 + floor(( i + 40 ) / 44 ) d = i + 28 - 31 * (m = 4) return {y, m, d} end function