10 PRINT TAB(32);"WEEKDAY" 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY" 30 PRINT:PRINT:PRINT 100 PRINT "WEEKDAY IS A COMPUTER DEMONSTRATION THAT" 110 PRINT"GIVES FACTS ABOUT A DATE OF INTEREST TO YOU." 120 PRINT 130 PRINT "ENTER TODAY'S DATE IN THE FORM: 3,24,1979 "; 140 INPUT M1,D1,Y1 150 REM THIS PROGRAM DETERMINES THE DAY OF THE WEEK 160 REM FOR A DATE AFTER 1582 170 DEF FNA(A)=INT(A/4) 180 DIM T(12) 190 DEF FNB(A)=INT(A/7) 200 REM SPACE OUTPUT AND READ IN INITIAL VALUES FOR MONTHS. 210 FOR I= 1 TO 12 220 READ T(I) 230 NEXT I 240 PRINT"ENTER DAY OF BIRTH (OR OTHER DAY OF INTEREST)"; 250 INPUT M,D,Y 260 PRINT 270 LET I1 = INT((Y-1500)/100) 280 REM TEST FOR DATE BEFORE CURRENT CALENDAR. 290 IF Y-1582 <0 THEN 1300 300 LET A = I1*5+(I1+3)/4 310 LET I2=INT(A-FNB(A)*7) 320 LET Y2=INT(Y/100) 330 LET Y3 =INT(Y-Y2*100) 340 LET A =Y3/4+Y3+D+T(M)+I2 350 LET B=INT(A-FNB(A)*7)+1 360 IF M > 2 THEN 470 370 IF Y3 = 0 THEN 440 380 LET T1=INT(Y-FNA(Y)*4) 390 IF T1 <> 0 THEN 470 400 IF B<>0 THEN 420 410 LET B=6 420 LET B = B-1 430 GOTO 470 440 LET A = I1-1 450 LET T1=INT(A-FNA(A)*4) 460 IF T1 = 0 THEN 400 470 IF B <>0 THEN 490 480 LET B = 7 490 IF (Y1*12+M1)*31+D1<(Y*12+M)*31+D THEN 550 500 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 530 510 PRINT M;"/";D;"/";Y;" WAS A "; 520 GOTO 570 530 PRINT M;"/";D;"/";Y;" IS A "; 540 GOTO 570 550 PRINT M;"/";D;"/";Y;" WILL BE A "; 560 REM PRINT THE DAY OF THE WEEK THE DATE FALLS ON. 570 IF B <>1 THEN 590 580 PRINT "SUNDAY." 590 IF B<>2 THEN 610 600 PRINT "MONDAY." 610 IF B<>3 THEN 630 620 PRINT "TUESDAY." 630 IF B<>4 THEN 650 640 PRINT "WEDNESDAY." 650 IF B<>5 THEN 670 660 PRINT "THURSDAY." 670 IF B<>6 THEN 690 680 GOTO 1250 690 IF B<>7 THEN 710 700 PRINT "SATURDAY." 710 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 1120 720 LET I5=Y1-Y 730 PRINT 740 LET I6=M1-M 750 LET I7=D1-D 760 IF I7>=0 THEN 790 770 LET I6= I6-1 780 LET I7=I7+30 790 IF I6>=0 THEN 820 800 LET I5=I5-1 810 LET I6=I6+12 820 IF I5<0 THEN 1310 830 IF I7 <> 0 THEN 850 835 IF I6 <> 0 THEN 850 840 PRINT"***HAPPY BIRTHDAY***" 850 PRINT " "," ","YEARS","MONTHS","DAYS" 855 PRINT " "," ","-----","------","----" 860 PRINT "YOUR AGE (IF BIRTHDATE) ",I5,I6,I7 870 LET A8 = (I5*365)+(I6*30)+I7+INT(I6/2) 880 LET K5 = I5 890 LET K6 = I6 900 LET K7 = I7 910 REM CALCULATE RETIREMENT DATE. 920 LET E = Y+65 930 REM CALCULATE TIME SPENT IN THE FOLLOWING FUNCTIONS. 940 LET F = .35 950 PRINT "YOU HAVE SLEPT ", 960 GOSUB 1370 970 LET F = .17 980 PRINT "YOU HAVE EATEN ", 990 GOSUB 1370 1000 LET F = .23 1010 IF K5 > 3 THEN 1040 1020 PRINT "YOU HAVE PLAYED", 1030 GOTO 1080 1040 IF K5 > 9 THEN 1070 1050 PRINT "YOU HAVE PLAYED/STUDIED", 1060 GOTO 1080 1070 PRINT "YOU HAVE WORKED/PLAYED", 1080 GOSUB 1370 1085 GOTO 1530 1090 PRINT "YOU HAVE RELAXED ",K5,K6,K7 1100 PRINT 1110 PRINT TAB(16);"*** YOU MAY RETIRE IN";E;" ***" 1120 PRINT 1140 PRINT 1200 PRINT 1210 PRINT 1220 PRINT 1230 PRINT 1240 END 1250 IF D=13 THEN 1280 1260 PRINT "FRIDAY." 1270 GOTO 710 1280 PRINT "FRIDAY THE THIRTEENTH---BEWARE!" 1290 GOTO 710 1300 PRINT "NOT PREPARED TO GIVE DAY OF WEEK PRIOR TO MDLXXXII. " 1310 GOTO 1140 1320 REM TABLE OF VALUES FOR THE MONTHS TO BE USED IN CALCULATIONS. 1330 DATA 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 1340 REM THIS IS THE CURRENT DATE USED IN THE CALCULATIONS. 1350 REM THIS IS THE DATE TO BE CALCULATED ON. 1360 REM CALCULATE TIME IN YEARS, MONTHS, AND DAYS 1370 LET K1=INT(F*A8) 1380 LET I5 = INT(K1/365) 1390 LET K1 = K1- (I5*365) 1400 LET I6 = INT(K1/30) 1410 LET I7 = K1 -(I6*30) 1420 LET K5 = K5-I5 1430 LET K6 =K6-I6 1440 LET K7 = K7-I7 1450 IF K7>=0 THEN 1480 1460 LET K7=K7+30 1470 LET K6=K6-1 1480 IF K6>0 THEN 1510 1490 LET K6=K6+12 1500 LET K5=K5-1 1510 PRINT I5,I6,I7 1520 RETURN 1530 IF K6=12 THEN 1550 1540 GOTO 1090 1550 LET K5=K5+1 1560 LET K6=0 1570 GOTO 1090 1580 REM 1590 END