home *** CD-ROM | disk | FTP | other *** search
- 10 ?:?
- 20 ? "THIS PROGRAM DEMONSTRATES XITAN DISK BASIC AND ALSO GIVES"
- 30 ? "FACTS ABOUT A DATE OF INTEREST TO YOU."
- 120 ?
- 124 LET Y1=1970
- 130 PRINT " ENTER TODAYS DATE IN THIS FORM: MONTH,DAY,YEAR";
- 140 INPUT M1,D1,Y1
- 150 IF Y1>100 THEN 170
- 160 LET Y1=Y1+1900
- 170 DEF FNA(A)=INT(A/4)
- 180 DIM T(12)
- 190 DEF FNB(A)=INT(A/7)
- 210 FOR I=1 TO 12
- 220 READ T(I)
- 230 NEXT I
- 240 ?
- 244 ?
- 245 PRINT " ENTER DATE OF BIRTH IN THIS FORM: MO,DAY,YEAR";
- 250 INPUT M,D,Y
- 260 ?
- 270 IF Y>100 THEN 280
- 275 LET Y=Y+1900
- 280 LET I1=INT((Y-1500)/100)
- 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 560
- 530 PRINT M;"/";D;"/";Y;" IS A ";
- 540 GOTO 560
- 550 PRINT M;"/";D;"/";Y;" WILL BE A ";
- 560 ON B GOTO 570,580,590,600,610,1250,630
- 570 ? "SUNDAY":GOTO 710
- 580 ? "MONDAY":GOTO 710
- 590 ? "TUESDAY":GOTO 710
- 600 ? "WEDNESDAY":GOTO 710
- 610 ? "THURSDAY":GOTO 710
- 630 ? "SATURDAY":GOTO 710
- 710 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 1120
- 720 LET I5=Y1-Y
- 730 ?
- 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"
- 860 PRINT "YOUR AGE ",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
- 920 LET E=Y+65
- 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/STUDIED",
- 1080 GOSUB 1370
- 1090 PRINT "YOU HAVE RELAXED ",K5,K6,K7
- 1100 ?
- 1110 PRINT ,"*** YOU MAY RETIRE IN";E;"***"
- 1120 PRINT
- 1140 ?:?:?
- 1240 GOTO 240
- 1250 IF D=13 THEN 1280
- 1260 ? "FRIDAY "
- 1270 GOTO 710
- 1280 PRINT "FRIDAY THE THIRTEENTH---BEWARE!!!!!!"
- 1290 GOTO 710
- 1300 ? "NOT PREPARED TO GIVE DAY OF WEEK PRIOR TO 1582"
- 1305 ? " THE CURRENT CALENDAR DID NOT EXIST BEFORE THAT YEAR."
- 1310 GOTO 1140
- 1330 DATA 0,3,3,6,1,4,6,2,5,0,3,5
- 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 END
-