ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

151 lines
3.7 KiB

  1. 10 PRINT TAB(32);"WEEKDAY"
  2. 20 PRINT TAB(15);"CREATIVE COMPUTING MORRISTOWN, NEW JERSEY"
  3. 30 PRINT:PRINT:PRINT
  4. 100 PRINT "WEEKDAY IS A COMPUTER DEMONSTRATION THAT"
  5. 110 PRINT"GIVES FACTS ABOUT A DATE OF INTEREST TO YOU."
  6. 120 PRINT
  7. 130 PRINT "ENTER TODAY'S DATE IN THE FORM: 3,24,1979 ";
  8. 140 INPUT M1,D1,Y1
  9. 150 REM THIS PROGRAM DETERMINES THE DAY OF THE WEEK
  10. 160 REM FOR A DATE AFTER 1582
  11. 170 DEF FNA(A)=INT(A/4)
  12. 180 DIM T(12)
  13. 190 DEF FNB(A)=INT(A/7)
  14. 200 REM SPACE OUTPUT AND READ IN INITIAL VALUES FOR MONTHS.
  15. 210 FOR I= 1 TO 12
  16. 220 READ T(I)
  17. 230 NEXT I
  18. 240 PRINT"ENTER DAY OF BIRTH (OR OTHER DAY OF INTEREST)";
  19. 250 INPUT M,D,Y
  20. 260 PRINT
  21. 270 LET I1 = INT((Y-1500)/100)
  22. 280 REM TEST FOR DATE BEFORE CURRENT CALENDAR.
  23. 290 IF Y-1582 <0 THEN 1300
  24. 300 LET A = I1*5+(I1+3)/4
  25. 310 LET I2=INT(A-FNB(A)*7)
  26. 320 LET Y2=INT(Y/100)
  27. 330 LET Y3 =INT(Y-Y2*100)
  28. 340 LET A =Y3/4+Y3+D+T(M)+I2
  29. 350 LET B=INT(A-FNB(A)*7)+1
  30. 360 IF M > 2 THEN 470
  31. 370 IF Y3 = 0 THEN 440
  32. 380 LET T1=INT(Y-FNA(Y)*4)
  33. 390 IF T1 <> 0 THEN 470
  34. 400 IF B<>0 THEN 420
  35. 410 LET B=6
  36. 420 LET B = B-1
  37. 430 GOTO 470
  38. 440 LET A = I1-1
  39. 450 LET T1=INT(A-FNA(A)*4)
  40. 460 IF T1 = 0 THEN 400
  41. 470 IF B <>0 THEN 490
  42. 480 LET B = 7
  43. 490 IF (Y1*12+M1)*31+D1<(Y*12+M)*31+D THEN 550
  44. 500 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 530
  45. 510 PRINT M;"/";D;"/";Y;" WAS A ";
  46. 520 GOTO 570
  47. 530 PRINT M;"/";D;"/";Y;" IS A ";
  48. 540 GOTO 570
  49. 550 PRINT M;"/";D;"/";Y;" WILL BE A ";
  50. 560 REM PRINT THE DAY OF THE WEEK THE DATE FALLS ON.
  51. 570 IF B <>1 THEN 590
  52. 580 PRINT "SUNDAY."
  53. 590 IF B<>2 THEN 610
  54. 600 PRINT "MONDAY."
  55. 610 IF B<>3 THEN 630
  56. 620 PRINT "TUESDAY."
  57. 630 IF B<>4 THEN 650
  58. 640 PRINT "WEDNESDAY."
  59. 650 IF B<>5 THEN 670
  60. 660 PRINT "THURSDAY."
  61. 670 IF B<>6 THEN 690
  62. 680 GOTO 1250
  63. 690 IF B<>7 THEN 710
  64. 700 PRINT "SATURDAY."
  65. 710 IF (Y1*12+M1)*31+D1=(Y*12+M)*31+D THEN 1120
  66. 720 LET I5=Y1-Y
  67. 730 PRINT
  68. 740 LET I6=M1-M
  69. 750 LET I7=D1-D
  70. 760 IF I7>=0 THEN 790
  71. 770 LET I6= I6-1
  72. 780 LET I7=I7+30
  73. 790 IF I6>=0 THEN 820
  74. 800 LET I5=I5-1
  75. 810 LET I6=I6+12
  76. 820 IF I5<0 THEN 1310
  77. 830 IF I7 <> 0 THEN 850
  78. 835 IF I6 <> 0 THEN 850
  79. 840 PRINT"***HAPPY BIRTHDAY***"
  80. 850 PRINT " "," ","YEARS","MONTHS","DAYS"
  81. 855 PRINT " "," ","-----","------","----"
  82. 860 PRINT "YOUR AGE (IF BIRTHDATE) ",I5,I6,I7
  83. 870 LET A8 = (I5*365)+(I6*30)+I7+INT(I6/2)
  84. 880 LET K5 = I5
  85. 890 LET K6 = I6
  86. 900 LET K7 = I7
  87. 910 REM CALCULATE RETIREMENT DATE.
  88. 920 LET E = Y+65
  89. 930 REM CALCULATE TIME SPENT IN THE FOLLOWING FUNCTIONS.
  90. 940 LET F = .35
  91. 950 PRINT "YOU HAVE SLEPT ",
  92. 960 GOSUB 1370
  93. 970 LET F = .17
  94. 980 PRINT "YOU HAVE EATEN ",
  95. 990 GOSUB 1370
  96. 1000 LET F = .23
  97. 1010 IF K5 > 3 THEN 1040
  98. 1020 PRINT "YOU HAVE PLAYED",
  99. 1030 GOTO 1080
  100. 1040 IF K5 > 9 THEN 1070
  101. 1050 PRINT "YOU HAVE PLAYED/STUDIED",
  102. 1060 GOTO 1080
  103. 1070 PRINT "YOU HAVE WORKED/PLAYED",
  104. 1080 GOSUB 1370
  105. 1085 GOTO 1530
  106. 1090 PRINT "YOU HAVE RELAXED ",K5,K6,K7
  107. 1100 PRINT
  108. 1110 PRINT TAB(16);"*** YOU MAY RETIRE IN";E;" ***"
  109. 1120 PRINT
  110. 1140 PRINT
  111. 1200 PRINT
  112. 1210 PRINT
  113. 1220 PRINT
  114. 1230 PRINT
  115. 1240 END
  116. 1250 IF D=13 THEN 1280
  117. 1260 PRINT "FRIDAY."
  118. 1270 GOTO 710
  119. 1280 PRINT "FRIDAY THE THIRTEENTH---BEWARE!"
  120. 1290 GOTO 710
  121. 1300 PRINT "NOT PREPARED TO GIVE DAY OF WEEK PRIOR TO MDLXXXII. "
  122. 1310 GOTO 1140
  123. 1320 REM TABLE OF VALUES FOR THE MONTHS TO BE USED IN CALCULATIONS.
  124. 1330 DATA 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5
  125. 1340 REM THIS IS THE CURRENT DATE USED IN THE CALCULATIONS.
  126. 1350 REM THIS IS THE DATE TO BE CALCULATED ON.
  127. 1360 REM CALCULATE TIME IN YEARS, MONTHS, AND DAYS
  128. 1370 LET K1=INT(F*A8)
  129. 1380 LET I5 = INT(K1/365)
  130. 1390 LET K1 = K1- (I5*365)
  131. 1400 LET I6 = INT(K1/30)
  132. 1410 LET I7 = K1 -(I6*30)
  133. 1420 LET K5 = K5-I5
  134. 1430 LET K6 =K6-I6
  135. 1440 LET K7 = K7-I7
  136. 1450 IF K7>=0 THEN 1480
  137. 1460 LET K7=K7+30
  138. 1470 LET K6=K6-1
  139. 1480 IF K6>0 THEN 1510
  140. 1490 LET K6=K6+12
  141. 1500 LET K5=K5-1
  142. 1510 PRINT I5,I6,I7
  143. 1520 RETURN
  144. 1530 IF K6=12 THEN 1550
  145. 1540 GOTO 1090
  146. 1550 LET K5=K5+1
  147. 1560 LET K6=0
  148. 1570 GOTO 1090
  149. 1580 REM
  150. 1590 END