home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh2x / sh23a.d64 / mondkalender (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  6KB  |  195 lines

  1. 100 CLR:GOSUB5000
  2. 110 :
  3. 120 P1=(null)/180:P2=180/(null):P3=(null)/648000
  4. 130 :
  5. 140 DEFFNAS(X)=ATN(X/SQR(1-X*X))
  6. 150 DEFFNAC(X)=-ATN(X/SQR(1-X*X))+(null)/2
  7. 160 DEFFNRD(X)=(X/360-INT(X/360))*360
  8. 165 DEFFNMM(X)=(X/24-INT(X/24))*24
  9. 170 :
  10. 180 INPUT" [212]AG,[205]ONAT,[202]AHR ";DA,MO,YE
  11. 190 PRINT:INPUT" [211]TD,[205]IN [[213][212]]   ";HO,MI
  12. 195 GOSUB5000
  13. 200 :
  14. 210 UT=HO+MI/60:MX=MO:YX=YE
  15. 220 IFMO<=2THENMX=MO+12:YX=YE-1
  16. 230 J1=INT(365.25*YX)+INT(30.6001*(MX+1))+1720981.5+DA
  17. 240 J2=J1+UT/24
  18. 250 :
  19. 260 T1=(J2-2415020)/36525
  20. 270 T2=(J2-2451545)/36525
  21. 280 :
  22. 290 LM=FNRD(270.434164+480960*T1+307.883142*T1-.001133*T1*T1)*P1
  23. 300 MM=FNRD(296.104608+477000*T1+198.849108*T1+.009192*T1*T1)*P1
  24. 310 AK=FNRD(259.183275-1800*T1-134.142008*T1+.002078*T1*T1)*P1
  25. 320 LS=FNRD(279.696678+36000*T1+.768925*T1+.000303*T1*T1)*P1
  26. 330 MS=FNRD(358.475833+35640*T1+359.04975*T1-.00015*T1*T1)*P1
  27. 340 :
  28. 350 E(1)=22640*SIN(MM)+769*SIN(2*MM)+36*SIN(3*MM)-125*SIN(LM-LS)
  29. 360 E(2)=2370*SIN(2*(LM-LS))-668*SIN(MS)-412*SIN(2*(LM-AK))
  30. 370 E(3)=212*SIN(2*(LM-LS-MM))+4586*SIN(2*(LM-LS)-MM)+192*SIN(2*(LM-LS)+MM)
  31. 380 E(4)=165*SIN(2*(LM-LS)-MS)+206*SIN(2*(LM-LS)-MM-MS)-110*SIN(MM+MS)
  32. 390 E(5)=148*SIN(MM-MS)
  33. 400 :
  34. 410 FORI=1TO5:EL=EL+E(I):NEXTI
  35. 420 EL=LM+EL*P3
  36. 430 :
  37. 440 F(1)=18520*SIN(EL-AK+412*P3*SIN(2*(LM-AK))+541*P3*SIN(MS))
  38. 450 F(2)=-526*SIN(2*LS-LM-AK)+44*SIN(2*LS-LM-AK+MM)-31*SIN(2*LS-LM-AK-MM)
  39. 460 F(3)=-23*SIN(2*LS-LM-AK+MS)+11*SIN(2*LS-LM-AK-MS)-25*SIN(LM-AK-2*MM)
  40. 470 F(4)=21*SIN(LM-AK-MM)
  41. 480 :
  42. 490 FORI=1TO4:EB=EB+F(I):NEXTI:EB=EB*P3
  43. 500 :
  44. 510 HP=3423+187*COS(MM)+10*COS(2*MM)+34*COS(2*(LM-LS)-MM)+28*COS(2*(LM-LS))
  45. 520 HP=HP+3*COS(2*(LM-LS)+MM)
  46. 530 HP=HP*P3
  47. 540 :
  48. 550 HM=FNAS(.272493*SIN(HP))
  49. 560 :
  50. 570 DM=6378.14/SIN(HP)
  51. 580 :
  52. 600 SE=(23.439291-.013004*T2)*P1
  53. 610 DK=FNAS(SIN(SE)*COS(EB)*SIN(EL)+COS(SE)*SIN(EB))
  54. 620 RA=(COS(SE)*COS(EB)*SIN(EL)-SIN(SE)*SIN(EB))/(COS(DK)+COS(EB)*COS(EL))
  55. 630 RA=2*ATN(RA)
  56. 640 RA=RA-(RA<0)*2*(null)
  57. 650 :
  58. 660 GS=FNMM(6.656306+.0657098242*(J1-2445700.5)+1.0027379093*UT)
  59. 670 OS=FNMM(GS+7/15)
  60. 680 SZ=OS*15*P1
  61. 690 GB=49.2*P1
  62. 700 ER=6378.14
  63. 710 X=DM*COS(DK)*COS(RA)-ER*COS(GB)*COS(SZ)
  64. 720 Y=DM*COS(DK)*SIN(RA)-ER*COS(GB)*SIN(SZ)
  65. 730 Z=DM*SIN(DK)-ER*SIN(GB)
  66. 740 DT=SQR(X*X+Y*Y+Z*Z)
  67. 750 D2=FNAS((DM*SIN(DK)-ER*SIN(GB))/DT)
  68. 760 R2=DT*COS(D2)+DM*COS(DK)*COS(RA)-ER*COS(GB)*COS(SZ)
  69. 770 R2=2*ATN((DM*COS(DK)*SIN(RA)-ER*COS(GB)*SIN(SZ))/R2)
  70. 780 R2=R2-(R2<0)*2*(null)
  71. 790 :
  72. 800 SW=SZ-R2
  73. 810 H=FNAS(SIN(GB)*SIN(D2)+COS(GB)*COS(D2)*COS(SW))
  74. 820 A=2*ATN((COS(D2)*SIN(SW))/(COS(H)+SIN(GB)*COS(D2)*COS(SW)-COS(GB)*SIN(D2)))
  75. 830 AZ=A-(A<0)*2*(null)
  76. 835 :
  77. 840 Z1$=RIGHT$(STR$(100+DA),2)+"."+RIGHT$(STR$(100+MO),2)+"."
  78. 845 Z1$=Z1$+RIGHT$(STR$(10000+YE),4)
  79. 850 Z2$=RIGHT$(STR$(100+HO),2)+"H"+RIGHT$(STR$(100+MI),2)+"M"+" [213][212]"
  80. 855 :
  81. 860 PRINT"  [196]ATUM  :[146] ";Z1$:PRINT
  82. 865 PRINT"  [213]HRZEIT:[146] ";Z2$:PRINT
  83. 867 PRINTTAB(10)" [210]EKT.[146]    [196]EKL.[146]   [197]NTFERNUNG[146]"
  84. 870 RX=RA:GOSUB5100:PRINT:PRINT"  GEOZ. :[146] ";RX$;
  85. 875 R=DK:GOSUB5050:PRINT"  ";N$;"  ";
  86. 877 PRINTINT(DM+.5)" KM":PRINT
  87. 880 RX=R2:GOSUB5100:PRINT"  TOPOZ.:[146] ";RX$;
  88. 885 R=D2:GOSUB5050:PRINT"  ";N$;"  ";
  89. 887 PRINTINT(DT+.5)" KM":PRINT
  90. 890 R=AZ:GOSUB5050:PRINT"  [193]ZIMUT:[146]";N$;"  ";
  91. 900 R=H:GOSUB5050:PRINT"  [200]OEHE: [146]";N$;" [199]RD":PRINT
  92. 905 R=HM*120:GOSUB5050:PRINT"  [205]ONDDURCHMESSER:[146]";N$;" '":PRINT
  93. 910 R=HP*120:GOSUB5050:PRINT"  [197]RDDURCHMESSER :[146]";N$;" '":PRINT
  94. 915 PRINT:PRINTTAB(20)"WEITER MIT [212]ASTE[146] ";
  95. 920 POKE198,0:WAIT198,1:POKE198,0
  96. 925 :
  97. 926 PRINT"JA[146][144]"
  98. 930 T3=YE+(MO-1)/12+DA/365
  99. 935 K(1)=INT((T3-1900)*12.3685+.5)
  100. 940 K(2)=K(1)+.5
  101. 945 K(3)=K(1)+.25
  102. 950 K(4)=K(1)+.75
  103. 952 :
  104. 955 FORI=1TO4
  105. 960 T(I)=K(I)/1236.85
  106. 965 JD(I)=2415020.75933+29.53058868*K(I)+.0001178*T(I)*T(I)-.000000155*T(I)^3
  107. 970 JD(I)=JD(I)+.00033*SIN((166.56+132.87*T(I)-.009173*T(I)*T(I))*P1)
  108. 975 M(I)=FNRD(359.2242+29.10535608*K(I)-.0000333*T(I)^2-.00000347*T(I)^3)*P1
  109. 980 MM(I)=FNRD(306.0253+385.81691806*K(I)+.0107306*T(I)^2+.00001236*T(I)^3)*P1
  110. 985 F(I)=FNRD(21.2964+390.67050646*K(I)-.0016528*T(I)^2-.00000239*T(I)^3)*P1
  111. 990 NEXTI
  112. 992 :
  113. 995 FORI=1TO2
  114. 1000 A1=(.1734-.000393*T(I))*SIN(M(I))+.0021*SIN(2*M(I))-.4068*SIN(MM(I))
  115. 1005 A2=.0161*SIN(2*MM(I))-.0004*SIN(3*MM(I))+.0104*SIN(2*F(I))
  116. 1010 A3=-.0051*SIN(M(I)+MM(I))-.0074*SIN(M(I)-MM(I))+.0004*SIN(2*F(I)+M(I))
  117. 1015 A4=-.0004*SIN(2*F(I)-M(I))-.0006*SIN(2*F(I)+MM(I))+.001*SIN(2*F(I)-MM(I))
  118. 1020 A5=.0005*SIN(M(I)+2*MM(I))
  119. 1025 JD(I)=JD(I)+A1+A2+A3+A4+A5
  120. 1030 NEXTI
  121. 1032 :
  122. 1035 FORI=3TO4
  123. 1040 A1=(.1721-.0004*T(I))*SIN(M(I))+.0021*SIN(2*M(I))-.628*SIN(MM(I))
  124. 1045 A2=.0089*SIN(2*MM(I))-.0004*SIN(3*MM(I))+.0079*SIN(2*F(I))
  125. 1050 A3=-.0119*SIN(M(I)+MM(I))-.0047*SIN(M(I)-MM(I))+.0003*SIN(2*F(I)+M(I))
  126. 1055 A4=-.0004*SIN(2*F(I)-M(I))-.0006*SIN(2*F(I)+MM(I))+.0021*SIN(2*F(I)-MM(I))
  127. 1060 A5=.0003*SIN(M(I)+2*MM(I))+.0004*SIN(M(I)-2*MM(I))-.0003*SIN(2*M(I)+MM(I))
  128. 1065 JD(I)=JD(I)+A1+A2+A3+A4+A5
  129. 1070 NEXTI
  130. 1075 JD(3)=JD(3)+.0028-.0004*COS(M(3))+.0003*COS(MM(3))
  131. 1080 JD(4)=JD(4)-.0028+.0004*COS(M(4))-.0003*COS(MM(4))
  132. 1082 :
  133. 1085 ZT(1)=JD(1)
  134. 1090 ZT(2)=JD(3)
  135. 1095 ZT(3)=JD(2)
  136. 1100 ZT(4)=JD(4)
  137. 1105 GOSUB5000
  138. 1110 PRINT"  [205]ONDPHASEN [146]":PRINT
  139. 1115 PRINT:X=ZT(1):GOSUB5150
  140. 1120 PRINT"  [206]EUMOND        :[146] ";Z3$
  141. 1125 PRINT:X=ZT(2):GOSUB5150
  142. 1130 PRINT"  [197]RSTES [214]IERTEL :[146] ";Z3$
  143. 1135 PRINT:X=ZT(3):GOSUB5150
  144. 1140 PRINT"  [214]OLLMOND       :[146] ";Z3$
  145. 1145 PRINT:X=ZT(4):GOSUB5150
  146. 1150 PRINT"  [204]ETZTES [214]IERTEL:[146] ";Z3$
  147. 1155 PRINT:PRINT
  148. 1160 PRINTTAB(5)"[197]PHEMERIDEN WIEDERHOLEN  (1) [146][144]":PRINT
  149. 1165 PRINTTAB(5)"[208]ROGRAMM NEU BEGINNEN    (2) [146][144]":PRINT
  150. 1167 PRINTTAB(5)"[208]ROGRAMM BEENDEN         (3) [146][144]"
  151. 1170 GETW$:IFW$=""THEN1170
  152. 1175 IFW$="1"THENGOSUB5000:GOTO860
  153. 1177 IFW$="2"THEN100
  154. 1179 IFW$="3"THENEND
  155. 1180 GOTO1170
  156. 4999 END
  157. 5000 POKE53281,14:POKE53280,6:POKE646,0
  158. 5005 PRINTCHR$(147)CHR$(14)CHR$(8)
  159. 5010 PRINTTAB(4)" [205]ONDEPHEMERIDEN UND [205]ONDPHASEN [146]":PRINT
  160. 5015 PRINTTAB(9)"64'ER / [214].[210]EICHARD 1987":PRINT:PRINT
  161. 5020 RETURN
  162. 5025 :
  163. 5050 R=R*P2:Q=INT(R*100+.5)/100:V$=" ":IFQ<0THENV$="-"
  164. 5055 Q=ABS(Q):A$=STR$(INT(Q)):B$=STR$(INT((Q-INT(Q))*100+.5))
  165. 5060 IFLEN(A$)=2THENA$="00"+RIGHT$(A$,1)
  166. 5065 IFLEN(A$)=3THENA$="0"+RIGHT$(A$,2)
  167. 5070 A$=RIGHT$(A$,3):IFLEN(B$)=2THENB$="0"+RIGHT$(B$,1)
  168. 5075 N$=V$+A$+"."+RIGHT$(B$,2)
  169. 5080 RETURN
  170. 5085 :
  171. 5100 RX=RX*P2/15
  172. 5105 RH=INT(RX):RM=INT((RX-INT(RX))*60+.5)
  173. 5110 RH$=RIGHT$(STR$(100+RH),2)
  174. 5115 RM$=RIGHT$(STR$(100+RM),2)
  175. 5120 RX$=RH$+"H"+RM$+"M"
  176. 5125 RETURN
  177. 5130 :
  178. 5150 A=INT(X+.5):C=A+1537
  179. 5155 D=INT((C-122.1)/365.25)
  180. 5160 E=INT(365.25*D)
  181. 5165 F=INT((C-E)/30.6001)
  182. 5170 DX=C-E-INT(30.6001*F)+(X+.5-A)
  183. 5175 D$=RIGHT$(STR$(1000+INT(DX)),2)
  184. 5180 MX=F-1-12*INT(F/14)
  185. 5185 M$=RIGHT$(STR$(1000+MX),2)
  186. 5190 YX=D-4715-INT((7+MX)/10)
  187. 5195 Y$=RIGHT$(STR$(10000+YX),4)
  188. 5200 HO=(DX-INT(DX))*24
  189. 5205 MI=(HO-INT(HO))*60
  190. 5210 HO=INT(HO):MI=INT(MI+.5)
  191. 5215 HO$=RIGHT$(STR$(1000+HO),2)
  192. 5220 MI$=RIGHT$(STR$(1000+MI),2)
  193. 5225 Z3$=D$+"."+M$+"."+Y$+" "+HO$+"H"+MI$+"M"+" [213][212]"
  194. 5230 RETURN
  195.