1 '*********************************** 2 '* * 3 '* JD-TABLE * 4 '* English version 2.01 * 5 '* * 6 '* Program prints Julian date * 7 '* with last four digits in the * 8 '* form of table to screen, file * 9 '* or printer. * 11 '* * 12 '* MBasic revision * 13 '* * 14 '* Veikko Makela * 15 '* 11.2.1986 * 16 '* * 17 '*********************************** 18 : 19 '********* SCREEN CONTROL ********** 20 ' Spectravideo 318/328 (VT-52) 21 : 22 CL$=CHR$(12) :'Clear screen 23 BL$=CHR$(7) :'Bell 24 UP$=CHR$(30) :'Cursor up 25 : 26 '************** TABLE ************** 27 : 28 DIM KK#(13) :'The first days in the months 29 : 30 '*********************************** 31 : 32 GOTO 187 :->MAIN PROGRAM 33 : 34 '************ JD(P,K,V) ************ 35 : 36 'Calculation of the integer part of JD 37 : 38 IF K>2 THEN F=V ELSE F=V-1 39 IF K>2 THEN G=K ELSE G=K+12 40 A=INT(F/100) 41 B=2-A+INT(A/4) 42 JD#=INT(365.25*F)+INT(30.6001*(G+1))+P+B+1720995# 43 : 44 RETURN 45 : 46 '****** BEGINNINGS OF MONTHS ******* 47 : 48 'Calculates the JD OF THE first days 49 'in all the months 50 : 51 P=1 52 FOR K=1 TO 12 53 GOSUB 34 :'->JD(P,K,V) 54 KK#(K)=JD# 55 NEXT 56 KK#(13)=KK#(12)+31 :'Seuraava tammikuu 57 : 58 RETURN 59 : 60 '*************** MENU ************** 61 : 62 'Choose output destination 63 : 64 PRINT CL$; 65 PRINT " ENTER DESTINATION:" 66 PRINT 67 PRINT "0 None/Exit" 68 PRINT "1 To screen" 69 PRINT "2 To printer" 70 PRINT "3 To disk file" 71 PRINT 72 PRINT "Enter command: "; 73 T$=INKEY$ :IF T$="" THEN 73 74 PRINT 75 IF T$<"0" OR T$>"3" THEN PRINT BL$;"Invalid command";UP$;UP$ :GOTO 72 76 PRINT CL$ 77 : 78 RETURN 79 : 80 '******** PRINT (To screen) ******* 81 : 82 PRINT CL$; 83 PRINT TAB(20);"JULIAN DATE IN A YEAR";V 84 PRINT 85 FOR M=1 TO 12 86 PRINT TAB(M*6);STR$(M);"."; 87 NEXT 88 PRINT :PRINT 89 FOR D=1 TO 15 90 PRINT USING "##";D; 91 FOR M=1 TO 12 92 JD$=RIGHT$(STR$(KK#(M)+(D-1)),4) :'Four last digits 93 PRINT TAB(M*6);JD$; 94 NEXT 95 PRINT 96 IF D/5=INT(D/5) THEN PRINT 97 NEXT 98 PRINT 99 INPUT "Press ";CONTINUE$ 100 : 101 PRINT CL$; 102 PRINT TAB(20);"JULIAN DATE IN A YEAR";V 103 PRINT 104 FOR M=1 TO 12 105 PRINT TAB(M*6);STR$(M);"."; 106 NEXT 107 PRINT :PRINT 108 FOR D=16 TO 31 109 PRINT USING "##";D; 110 FOR M=1 TO 12 111 JD$=RIGHT$(STR$(KK#(M)+(D-1)),4) :'Four last digits 112 IF KK#(M)+(D-1)";CONTINUE$ 119 : 120 RETURN 121 : 122 '****** PRINT (To print) ****** 123 : 124 PRINT CL$ 125 PRINT "PRINT TO PRINTER:" 126 PRINT 127 INPUT "When the printer is ready, press ";CONTINUE$ 128 : 129 LPRINT TAB(20);"JULIAN DATE IN A YEAR";V 130 LPRINT 131 FOR M=1 TO 12 132 LPRINT TAB(M*6);STR$(M);"."; 133 NEXT 134 LPRINT :LPRINT 135 FOR D=1 TO 31 136 LPRINT USING "##";D; 137 FOR M=1 TO 12 138 JD$=RIGHT$(STR$(KK#(M)+(D-1)),4) :'Last four digits 139 IF KK#(M)+(D-1) = default name: "; 162 INPUT NN$ 163 IF NN$<>"" THEN N$=NN$ 164 : 165 OPEN "O",#1,N$ 166 : 167 PRINT #1, TAB(20);"JULIAN DATE IN A YEAR";V 168 PRINT #1, CHR$(13) 169 FOR M=1 TO 12 170 PRINT #1, TAB(M*6);STR$(M);"."; 171 NEXT 172 PRINT #1, CHR$(13) :PRINT #1, CHR$(13) 173 FOR D=1 TO 31 174 PRINT #1, USING "##";D; 175 FOR M=1 TO 12 176 JD$=RIGHT$(STR$(KK#(M)+(D-1)),4) :'Four last digit 177 IF KK#(M)+(D-1) BEGINNINGS OF MONTHS 196 : 197 GOSUB 60 :'-> MENU 198 IF T$="0" THEN 207 199 ON VAL(T$) GOSUB 80,122,149 :'->PRINT (To device) 200 : 201 PRINT CL$; 202 PRINT "Print more? (Y/N)"; 203 ASK$=INKEY$ :IF ASK$="" THEN 203 204 PRINT 205 IF ASK$="Y" OR ASK$="y" THEN 197 206 : 207 PRINT "Another year? (Y/N)"; 208 NW$=INKEY$ :IF NW$="" THEN 208 209 PRINT 210 IF NW$="Y" OR NW$="y" THEN 189 211 : 212 END 213 : 214 '********* End of Program *********