9000  REM **** VERSION #1 **** 7/31/69
9001  REM **** CALEN **** EDUCATION
9002  PRINT "THIS PROGRAM DETERMINES THE DAY OF THE WEEK"
9003  PRINT "ON WHICH A GIVEN DATE FALLS."
9004  DIM A$[5]
9005  LET W=W1=0
9006  DIM F[12],L[12]
9007  MAT  READ F
9008  MAT  READ L
9009  GOTO 9076
9010  IF Y<1 THEN 9027
9011  IF M>12 THEN 9027
9012  IF M<1 THEN 9027
9013  IF D<1 THEN 9027
9014  IF Y>1752 THEN 9034
9015  IF Y<1582 THEN 9029
9016  IF Y=1752 THEN 9023
9017  IF Y=1582 THEN 9019
9018  GOTO 9031
9019  IF M<10 THEN 9029
9020  IF M>10 THEN 9031
9021  IF D<15 THEN 9029
9022  GOTO 9031
9023  IF M<9 THEN 9031
9024  IF M>9 THEN 9034
9025  IF D<14 THEN 9031
9026  GOTO 9034
9027  PRINT "UNACCEPTABLE DATA -- TRY AGAIN."
9028  GOTO 9078
9029  LET G1=0
9030  GOTO 9032
9031  LET G1=1
9032  LET J1=1
9033  GOTO 9036
9034  LET G1=1
9035  LET J1=0
9036  IF J1 <> 1 THEN 9054
9037  LET L1=0
9038  LET A=Y+INT((Y+3)/4)
9039  IF Y <> INT(Y/4)*4 THEN 9044
9040  LET L1=1
9041  IF M<3 THEN 9044
9042  LET L=1
9043  GOTO 9045
9044  LET L=0
9045  LET Z=A+D+L+F[M]+5
9046  LET Z=Z-INT(Z/7)*7
9047  LET Q=L[M]
9048  IF M <> 2 THEN 9050
9049  LET Q=Q+L1
9050  IF D>Q THEN 9027
9051  PRINT "OLD STYLE CALENDAR:  ";
9052  LET W=1
9053  GOSUB 9089
9054  IF G1 <> 1 THEN 9080
9055  LET L1=0
9056  LET Y=Y-400*INT(Y/400)
9057  LET A=Y+INT((Y+3)/4)-INT((Y-1)/100)
9058  IF Y <> INT(Y/4)*4 THEN 9065
9059  IF Y=0 THEN 9061
9060  IF Y=100*INT(Y/100) THEN 9065
9061  LET L1=1
9062  IF M<3 THEN 9065
9063  LET L=1
9064  GOTO 9066
9065  LET L=0
9066  LET Z=A+D+L+F[M]
9067  LET Z=Z-INT(Z/7)*7
9068  LET Q=L[M]
9069  IF M <> 2 THEN 9071
9070  LET Q=Q+L1
9071  IF D>Q THEN 9027
9072  IF W=0 THEN 9074
9073  PRINT "NEW STYLE CALENDAR:  ";
9074  GOSUB 9089
9075  GOTO 9080
9076  PRINT "ENTER MONTH NUMBER, DATE, AND YEAR."
9077  PRINT 
9078  INPUT M,D,Y
9079  IF W1=0 THEN 9010
9080  PRINT "IS THERE ANOTHER DATE YOU WANT TO KNOW";
9081  INPUT A$
9082  IF A$="NO" THEN 9999
9083  PRINT 
9084  PRINT "ENTER DATE:  ";
9085  LET W=0
9086  LET W1=1
9087  INPUT M,D,Y
9088  GOTO 9010
9089  GOTO Z+1 OF 9090,9092,9094,9096,9098,9100,9102
9090  PRINT "FRIDAY"
9091  RETURN 
9092  PRINT "SATURDAY"
9093  RETURN 
9094  PRINT "SUNDAY"
9095  RETURN 
9096  PRINT "MONDAY"
9097  RETURN 
9098  PRINT "TUESDAY"
9099  RETURN 
9100  PRINT "WEDNESDAY"
9101  RETURN 
9102  PRINT "THURSDAY"
9103  RETURN 
9900  DATA 0,3,3,6,1,4,6,2,5,0,3,5
9901  DATA 31,28,31,30,31,30,31,31,30,31,30,31
9999  END 
