100 REM ** EASTER.BAS ** 105 REM 3/19/2005 - Made more efficient - Changed phrasing - Lee Bradley 220 PRINT : PRINT "EASTER IS ... !" 230 PRINT "by Daryl D. Gehlbach": PRINT 240 PRINT "This program will compute the date of" 250 PRINT "Easter for any year 1582 to 2099. It" 260 PRINT "is based on a procedure formulated" 270 PRINT "by the mathematician Carl Friedrich" 280 PRINT "Gauss in 1800 at the age of 23." 290 PRINT : PRINT 300 INPUT "What year do you want"; YEAR$ 310 YR = VAL(YEAR$) 320 IF YR < 1582 OR YR > 2099 THEN GOTO 700 400 REM 410 A = 0: B = 0: C = 0: D = 0: E = 0: M = 0: N = 0 420 IF YR > 1581 AND YR < 1700 THEN M = 22: N = 2 430 IF YR > 1699 AND YR < 1800 THEN M = 23: N = 3 440 IF YR > 1799 AND YR < 1900 THEN M = 23: N = 4 450 IF YR > 1899 AND YR < 2100 THEN M = 24: N = 5 460 A = YR MOD 4 470 B = YR MOD 7 480 C = YR MOD 19 490 D = (19 * C + M) MOD 30 500 E = ((2 * A) + (4 * B) + (6 * D) + N) MOD 7 505 OF = 9: MN$ = "April ": IF (D + E) <= OF THEN OF = -22: MN$ = "March " 540 PRINT : PRINT "Easter was / is / will be on " + MN$ + STR$(D + E - OF) + ", " + YEAR$ + "." 600 PRINT : PRINT "Do you wish to try another year? "; 610 AN$ = INKEY$ 620 IF AN$ = "" THEN 610 630 IF AN$ = "Y" OR AN$ = "y" THEN GOTO 290 640 PRINT : PRINT "Thank you, please use me again.": PRINT "Peace ..." 670 GOTO 999 700 PRINT : PRINT "Year is out of range!": PRINT "Please enter a year from 1582 to 2099." 730 GOTO 290 999 END