|
eingabe_ok = False
|
|
while not eingabe_ok:
|
try:
|
jahr_input = input("Geben Sie die Jahresnummer ein! ")
|
x = int(jahr_input)
|
eingabe_ok = True
|
except:
|
print("Eingabe ist keine Zahl")
|
|
|
def calc_easter_sunday(year: int) -> (int, int):
|
"""
|
calculate the Easter sunday of a year in Gregorian Calendar system.
|
:param year: valid year number
|
:return: tupel of (day, month)
|
"""
|
a = year % 19
|
k = year // 100
|
m = 15 + (3*k + 3) // 4 - (8*k + 13) // 25
|
d = (19*a + m) % 30
|
s = 2 - (3*k + 3) // 4
|
r = (d + a // 11) // 29
|
og = 21 + d - r
|
sz = 7 - (year + year//4 + s) % 7
|
oe = 7 - (og - sz) % 7
|
os = (og + oe)
|
if os <= 31:
|
tag = os
|
monat = 3
|
else:
|
tag = os-31
|
monat = 4
|
return (tag,monat)
|
|
tag,monat = calc_easter_sunday(x)
|
|
months = (None, "Jan", "Feb", "März", "April")
|
|
print(f"Der Ostersonntag im {x} ist am {tag}ten {months[monat]}.")
|