The Memorial date algorithm looks like this:
def memorial(y):
"""
Returns the date for Jehovah's Witnesses' Memorial of Christ's Death, the only holiday of Jehovah Witnesses,
who don't celebrate Easter nor Christmas nor birthdays (which they believe to be of pagan origin).
This is originally based on algorithm on the BCP found in https://almanac.oremus.org/easter/computus/.
"""
g = y%19+1
if y>1582:
s = (y-1600)//100-(y-1600)//400
l = (8*(y//100-14))//25
p = (3-11*g+s-l)%30
if p == 29 or (p == 28 and g > 11):
p -= 1
else:
p = (26-11*g)%30
m = p-1
if m<11: #March
day = m+21
month = 3
else: # April
day = m-10
month = 4
return day, month
y = int(input("Insert a year: "))
memdate = memorial(y)
print(f"The Memorial is in {memdate[0]}/{memdate[1]}/{y}.")
PS: I am not a Jehovah’s Witness. I have only attended the Memorial once, in March 24, 2024.
YEAR | METONIC | EXPECTED (Source: wol.jw.org) | ACTUAL CALCULATION |
---|---|---|---|
1950 | 13 | Apr 01 | Apr 01 |
1951 | 14 | Mar 23 | Mar 21 |
1952 | 15 | Apr 10 | Apr 09 |
1953 | 16 | Mar 30 | Mar 29 |
1954 | 17 | Apr 17 | Apr 16 |
1955 | 18 | Apr 07 | Apr 06 |
1956 | 19 | Mar 26 | Mar 26 |
1957 | 01 | Apr 14 | Apr 13 |
1958 | 02 | Apr 03 | Apr 02 |
1959 | 03 | Mar 23 | Mar 23 |
1960 | 04 | Apr 10 | Apr 10 |
1961 | 05 | Mar 30 | Mar 30 |
1962 | 06 | Apr 17 | Apr 17 |
1963 | 07 | Apr 08 | Apr 07 |
1964 | 08 | Mar 28 | Mar 27 |
1965 | 09 | Apr 16 | Apr 15 |
1966 | 10 | Apr 05 | Apr 04 |
1967 | 11 | Mar 25 | Mar 24 |
1968 | 12 | Apr 12 | Apr 12 |
1969 | 13 | Apr 01 | Apr 01 |
1970 | 14 | Mar 22 | Mar 21 |
1971 | 15 | Apr 09 | Apr 09 |
1972 | 16 | Mar 29 | Mar 29 |
1973 | 17 | Apr 17 | Apr 16 |
1974 | 18 | Apr 07 | Apr 06 |
1975 | 19 | Mar 27 | Mar 26 |
1976 | 01 | Apr 14 | Apr 13 |
1977 | 02 | Apr 03 | Apr 02 |
1978 | 03 | Mar 23 | Mar 22 |
1979 | 04 | Apr 11 | Apr 10 |
1980 | 05 | Mar 31 | Mar 30 |
1981 | 06 | Apr 19 | Apr 17 |
1982 | 07 | Apr 08 | Apr 07 |
1983 | 08 | Mar 29 | Mar 27 |
1984 | 09 | Apr 15 | Apr 15 |
1985 | 10 | Apr 04 | Apr 04 |
1986 | 11 | Mar 24 | Mar 24 |
1987 | 12 | Apr 12 | Apr 12 |
1988 | 13 | Apr 01 | Apr 01 |
1989 | 14 | Mar 22 | Mar 21 |
1990 | 15 | Apr 10 | Apr 09 |
1991 | 16 | Mar 30 | Mar 29 |
1992 | 17 | Apr 17 | Apr 16 |
1993 | 18 | Apr 06 | Apr 06 |
1994 | 19 | Mar 26 | Mar 26 |
1995 | 01 | Apr 14 | Apr 13 |
1996 | 02 | Apr 02 | Apr 02 |
1997 | 03 | Mar 23 | Mar 22 |
1998 | 04 | Apr 11 | Apr 10 |
1999 | 05 | Apr 01 | Mar 30 |
2000 | 06 | Apr 19 | Apr 17 |
2001 | 07 | Apr 08 | Apr 07 |
2002 | 08 | Mar 28 | Mar 27 |
2003 | 09 | Apr 16 | Apr 15 |
2004 | 10 | Apr 04 | Apr 04 |
2005 | 11 | Mar 24 | Mar 24 |
2006 | 12 | Apr 12 | Apr 12 |
2007 | 13 | Apr 02 | Apr 01 |
2008 | 14 | Mar 22 | Mar 21 |
2009 | 15 | Apr 09 | Apr 09 |
2010 | 16 | Mar 30 | Mar 29 |
2011 | 17 | Apr 17 | Apr 16 |
2012 | 18 | Apr 05 | Apr 06 |
2013 | 19 | Mar 26 | Mar 26 |
2014 | 01 | Apr 14 | Apr 13 |
2015 | 02 | Apr 03 | Apr 02 |
2016 | 03 | Mar 23 | Mar 22 |
2017 | 04 | Apr 11 | Apr 10 |
2018 | 05 | Mar 31 | Mar 30 |
2019 | 06 | Apr 19 | Apr 17 |
2020 | 07 | Apr 07 | Apr 07 |
2021 | 08 | Mar 27 | Mar 27 |
2022 | 09 | Apr 15 | Apr 15 |
2023 | 10 | Apr 04 | Apr 04 |
2024 | 11 | Mar 24 | Mar 24 |
2025 | 12 | Apr 12 | Apr 12 |
2026 | 13 | Apr 02 | Apr 01 |
You need to sign in to view this answers