1900 年から 2099 年までのイースターの日付を計算するスクリプトを書いています。問題は、4 つの特定の年 (1954 年、1981 年、2049 年、および 2076 年) では式が少し異なるということです (つまり、日付がずれています 7日々)。
def main():
print "Computes the date of Easter for years 1900-2099.\n"
year = input("The year: ")
if year >= 1900 and year <= 2099:
if year != 2049 != 2076 !=1981 != 1954:
a = year%19
b = year%4
c = year%7
d = (19*a+24)%30
e = (2*b+4*c+6*d+5)%7
date = 22 + d + e # March 22 is the starting date
if date <= 31:
print "The date of Easter is March", date
else:
print "The date of Easter is April", date - 31
else:
if date <= 31:
print "The date of Easter is March", date - 7
else:
print "The date of Easter is April", date - 31 - 7
else:
print "The year is out of range."
main()
Exerything はうまく機能していますが、4 年間の計算です。
if date <= 31:
UnboundLocalError: local variable 'date' referenced before assignment
入力として 4 年のいずれかを入力するたびに、次の値を取得して
います。