home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / math / daylite / daylight.bas < prev    next >
Encoding:
BASIC Source File  |  1989-03-06  |  4.1 KB  |  241 lines

  1. 60 REM
  2. 70 REM - START
  3. 80 REM
  4. 90 GOSUB 170
  5. 130 GOTO 240
  6. 140 REM
  7. 150 REM - SCREEN HEADER
  8. 160 REM
  9. 170 CLS
  10. 180 PRINT TAB(10);"RUN TIME CALCULATOR"
  11. 190 FOR I=1 TO 40
  12. 192 PRINT "-";
  13. 194 NEXT
  14. 196 PRINT
  15. 200 RETURN
  16. 210 REM
  17. 220 REM - BEGIN PROGRAM - CONSTANTS
  18. 230 REM
  19. 240 A=1.5708
  20. 250 B=3.14159
  21. 260 C=4.71239
  22. 270 D=6.28319
  23. 280 REM
  24. 290 REM - INPUTS
  25. 300 REM
  26. 310 GOSUB 170
  27. 320 PRINT "ENTER DATA:":PRINT
  28. 330 REM INPUT "LATITUDE DD.MMSS";Z
  29. 335 Z=51.0246
  30. 340 GOSUB 1120
  31. 350 lat=Z*.0174533
  32. 360 REM
  33. 370 REM INPUT "LONGITUDE DD.MMSS";Z
  34. 375 Z=114.0324
  35. 380 GOSUB 1120
  36. 390 long=Z*.0174533
  37. 400 REM
  38. 410 INPUT "YEAR    ";H
  39. 420 INPUT "MONTH   ";I
  40. 430 INPUT "DAY     ";J
  41. 440 REM
  42. 450 REM INPUT "Z    ";Z
  43. 455 Z=7
  44. 460 GOSUB 1120
  45. 470 zone=Z*.261799
  46. 480 REM
  47. 490 REM - DAY OF YEAR
  48. 500 REM
  49. 510 K=INT((I+9)/12)
  50. 520 X=H/4
  51. 530 Y=INT(X)
  52. 540 Z=X-Y
  53. 550 IF Z=0 THEN 570
  54. 560 K=K*2
  55. 570 H=INT(275*I/9)
  56. 580 H=H+J-K-30
  57. 590 REM
  58. 600 REM - RISING PHENOMENA
  59. 610 REM
  60. 620 I=0
  61. 630 J=A
  62. 640 GOSUB 1250
  63. 650 REM
  64. 660 R=-.309017
  65. 670 GOSUB 1780:PRINT
  66. 680 PRINT"ASTRONOMICAL DAWN:";TAB(25);V$
  67. 690 REM
  68. 700 R=-.207912
  69. 710 GOSUB 1780
  70. 720 PRINT "NAUTICAL DAWN:";TAB(25);V$
  71. 730 REM
  72. 740 R=-.104528
  73. 750 GOSUB 1780
  74. 760 PRINT "CIVIL DAWN:";TAB(25);V$
  75. 770 REM
  76. 780 R=-.0145439
  77. 790 GOSUB 1780
  78. 800 PRINT "SUNRISE:";TAB(25);V$
  79. 810 PRINT "------------------------------"
  80. 820 REM
  81. 830 REM - SETTING PHENOMENA
  82. 840 REM
  83. 850 I=1
  84. 860 J=C
  85. 870 GOSUB 1250
  86. 880 REM
  87. 890 R=-.0145439
  88. 900 GOSUB 1780
  89. 910 PRINT "SUNSET:";TAB(25);V$
  90. 920 REM
  91. 930 R=-.104528
  92. 940 GOSUB  1780
  93. 950 PRINT "CIVIL DUSK:";TAB(25);V$
  94. 960 REM
  95. 970 R=-.207912
  96. 980 GOSUB 1780
  97. 990 PRINT "NAUTICAL DUSK:";TAB(25);V$
  98. 1000 REM
  99. 1010 R=-.309017
  100. 1020 GOSUB 1780
  101. 1030 PRINT "ASTRONOMICAL DUSK:";TAB(25);V$
  102. 1040 REM
  103. 1050 PRINT:INPUT "ANOTHER CALCULATION (Y/N)";A$
  104. 1060 IF A$<>"Y" AND A$ <> "N" THEN 1050
  105. 1070 IF A$="N" THEN END
  106. 1080 CLS:GOTO 240
  107. 1090 REM
  108. 1100 REM - SEXAGESIMAL TO DECIMAL
  109. 1110 REM
  110. 1120 W=1
  111. 1130 IF Z>=0 THEN 1160
  112. 1140 W=-1
  113. 1150 Z=ABS(Z)
  114. 1160 X=INT(Z)
  115. 1170 Z=(Z-X)*100
  116. 1180 Y=INT(Z)
  117. 1190 Z=(Z-Y)*100
  118. 1200 Z=(X+Y/60+Z/3600)*W
  119. 1210 RETURN
  120. 1220 REM
  121. 1230 REM - APPROXIMATE TIME
  122. 1240 REM
  123. 1250 K=H+((J+long)/D)
  124. 1260 REM
  125. 1270 REM - SOLAR MEAN ANOMALY
  126. 1280 REM
  127. 1290 L=K*.017202
  128. 1300 L=L-.0574039
  129. 1310 REM
  130. 1320 REM - SOLAR TRUE LONGITUDE
  131. 1330 REM
  132. 1340 Z=SIN(L)
  133. 1350 M=L+.0334405*Z
  134. 1360 Z=SIN(2*L)
  135. 1370 M=M+3.49066E-04*Z
  136. 1380 M=M+4.93289
  137. 1390 REM
  138. 1400 REM - QUADRANT DETERMINATION
  139. 1410 REM
  140. 1420 Z=M
  141. 1430 GOSUB 2350
  142. 1440 M=Z
  143. 1450 X=M/A
  144. 1460 Y=INT(X)
  145. 1470 Z=X-Y
  146. 1480 IF Z<>0 THEN 1500
  147. 1490 M=M+4.84814E-06
  148. 1500 N=2
  149. 1510 IF M>C THEN 1580
  150. 1520 N=1
  151. 1530 IF M>A THEN 1580
  152. 1540 N=0
  153. 1550 REM
  154. 1560 REM - SOLAR RIGHT ASCENSION
  155. 1570 REM
  156. 1580 P=.91746*TAN(M)
  157. 1590 P=ATN(P)
  158. 1600 REM
  159. 1610 REM - QUADRANT ADJUSTMENT
  160. 1620 REM
  161. 1630 IF N=0 THEN 1710
  162. 1640 IF N=2 THEN 1670
  163. 1650 P=P+B
  164. 1660 GOTO 1710
  165. 1670 P=P+D
  166. 1680 REM
  167. 1690 REM - SOLAR DECLINATION
  168. 1700 REM
  169. 1710 Q=.39782*SIN(M)
  170. 1720 Q=Q/SQR(-Q*Q+1)
  171. 1730 Q=ATN(Q)
  172. 1740 RETURN
  173. 1750 REM
  174. 1760 REM - COORDINATE CONVERSION
  175. 1770 REM
  176. 1780 S=R-(SIN(Q)*SIN(lat))
  177. 1790 S=S/(COS(Q)*COS(lat))
  178. 1800 REM
  179. 1810 REM - NULL PHENOMENON
  180. 1820 REM
  181. 1830 Z=ABS(S)
  182. 1840 IF Z<=1 THEN 1900
  183. 1850 V=0
  184. 1860 RETURN
  185. 1870 REM
  186. 1880 REM - ADJUSTMENT
  187. 1890 REM
  188. 1900 S=S/SQR(-S*S+1)
  189. 1910 S=-ATN(S)+A
  190. 1920 IF I=1 THEN 1970
  191. 1930 S=D-S
  192. 1940 REM
  193. 1950 REM - LOVAL APPARENT TIME
  194. 1960 REM
  195. 1970 Z=.0172028*K
  196. 1980 T=S+P-Z-1.73364
  197. 1990 REM
  198. 2000 REM - UNIVERSAL TIME
  199. 2010 REM
  200. 2020 U=T+long
  201. 2030 REM
  202. 2040 REM - WALL CLOCK TIME
  203. 2050 REM
  204. 2060 V=U-zone
  205. 2070 REM
  206. 2080 REM - DECIMAL TO SEXAGESIMAL
  207. 2090 REM
  208. 2100 Z=V
  209. 2110 GOSUB 2350
  210. 2120 Z=Z*3.81972
  211. 2130 V=INT(Z)
  212. 2140 W=(Z-V)*60
  213. 2150 X=INT(W)
  214. 2160 Y=W-X
  215. 2170 IF Y<.5 THEN 2190
  216. 2180 X=X+1
  217. 2190 IF X<60 THEN 2250
  218. 2200 V=V+1
  219. 2210 X=0
  220. 2220 REM
  221. 2230 REM - CONVENTIONAL FORMAT
  222. 2240 REM
  223. 2250 Z$="00"
  224. 2260 HR$=MID$(STR$(V),2)
  225. 2270 HR$=RIGHT$(Z$+HR$,2)
  226. 2280 MI$=MID$(STR$(X),2)
  227. 2290 MI$=RIGHT$(Z$+MI$,2)
  228. 2300 V$=HR$+":"+MI$
  229. 2310 RETURN
  230. 2320 REM
  231. 2330 REM - NORMALIZATION
  232. 2340 REM
  233. 2350 IF Z>=0 THEN 2380
  234. 2360 Z=Z+D
  235. 2370 GOTO 2350
  236. 2380 IF Z<D THEN 2410
  237. 2390 Z=Z-D
  238. 2400 GOTO 2380
  239. 2410 RETURN
  240. 2420 END
  241.