SCREEN 12: COLOR 14: CLS : DEFDBL A-Z PALETTE 0, 0 Z1 = 0 Z2 = -12 PI = 3.141592654# SW = -.97599592# CW = .21778881# SE = .39777961# CE = .9174811# K1 = -.014834754# LOCATE 4, 7: PRINT "Berechnung der Sonnenauf-/untergangszeiten fur jeden Punkt der Erde": COLOR 11 LOCATE 10, 10: INPUT "Eingabe des dezimalen westl. Langengrades <-6.57>: ", LO IF LO = 0 THEN LO = -6.57 LOCATE 10, 63: PRINT " ": LOCATE 10, 63: PRINT USING "####.##"; LO LO = LO * PI / 180 LOCATE 12, 10: INPUT "Eingabe des dezimalen nordl. Breitengrades <51.44>: ", LA IF LA = 0 THEN LA = 51.44 IF LA <= -66.5 THEN SPK = 1 IF LA >= 66.5 THEN NPK = 1 LOCATE 12, 63: PRINT " ": LOCATE 12, 63: PRINT USING "####.##"; LA LA = LA * PI / 180 COLOR 14: CLS IF NPK = 1 THEN COLOR 15: LOCATE 2, 12: PRINT "Achtung, Ort liegt oberhalb des nordlichen Polarkreises !": COLOR 14 IF SPK = 1 THEN COLOR 15: LOCATE 2, 12: PRINT "Achtung, Ort liegt unterhalb des sudlichen Polarkreises !": COLOR 14 FOR TAG = 1 TO 24: READ D$, D M = (2 * PI * D + LO) / 365.24219# - .052708 L = M - 1.351248 C1 = 1 - .03343 * COS(M) C2 = .99944 * SIN(M) / C1 C3 = (COS(M) - .03343) / C1 C4 = SW * C3 + CW * C2 C5 = CW * C3 - SW * C2 C6 = SE * C4: REM Sine of sun declination B1 = K1 - C6 * SIN(LA) B2 = (COS(LA)) ^ 2 * (1 - C6 ^ 2) - B1 ^ 2 IF B2 <= 0 THEN B2 = B2 * (-1): REM Achtung Polarkreis !!! R = 0: S = 23.59: GOTO AUSGABE B3 = ATN(B1 / SQR(B2)) - PI / 2 B4 = ATN((COS(L) * CE * C4 - SIN(L) * C5) / (SIN(L) * CE * C4 + COS(L) * C5)) GOSUB EndRechnung R = B6 B3 = -B3 GOSUB EndRechnung S = B6 ausgabe: Z1 = Z1 + 1: Z2 = Z2 + 1: GOSUB Sonnenstunden: GOSUB Graphik: COLOR 14 IF D < 167 THEN LOCATE Z1 + 3, 4: PRINT USING "& ##.## ##.## = ##.##"; D$; R; S; Taghell IF D > 167 THEN LOCATE Z2 + 3, 44: PRINT USING "& ##.## ##.## = ##.##"; D$; R; S; Taghell NEXT TAG COLOR 15: LOCATE 17, 30: PRINT "Sonnenstunden pro Tag": COLOR 11: LOCATE 29, 4: PRINT "Jan Feb Mrz Apr Mai Jun Jul Aug Sep Okt Nov Dez"; a$ = INPUT$(1): IF a$ = "q" OR a$ = "Q" THEN SCREEN 0: COLOR 7, 0: CLS : END ELSE RUN EndRechnung: B5 = B4 + B3 + LO + PI IF B5 < 0 THEN B5 = B5 + 2 * PI B5 = INT(B5 * 720 / PI + .5): REM Minuten nach 00.00 UTC (Mitternacht) IF B5 > 1439 THEN B5 = B5 - 1440 B6 = .4 * INT(B5 / 60) + B5 / 100: REM Zeitumrechnung in SS:MM RETURN Graphik: Hori = TAG * 25 Vert = (-Taghell * 6.5) + 438 PSET (Hori, Vert): PSET (Hori + 1, Vert): PSET (Hori + 2, Vert) PSET (Hori, Vert + 1): PSET (Hori + 1, Vert + 1): PSET (Hori + 2, Vert + 1) PSET (Hori, Vert + 2): PSET (Hori + 1, Vert + 2): PSET (Hori + 2, Vert + 2) RETURN Sonnenstunden: IF R > S THEN SWAP R, S RStd = INT(R) RMin = (R - RStd) * 100 / 60 SStd = INT(S) SMin = (S - SStd) * 100 / 60 Rdez = RStd + RMin Sdez = SStd + SMin Taghelldez = Sdez - Rdez Taghellstd = INT(Taghelldez) Taghellmin = (Taghelldez - Taghellstd) * 60 / 100 Taghell = Taghellstd + Taghellmin RETURN DATA 1. Jan., 1, 15. Jan., 15 DATA 1. Feb., 32, 15. Feb., 46 DATA 1. Mrz., 60, 15. Mrz., 74 DATA 1. Apr., 91, 15. Apr.,105 DATA 1. Mai.,121, 15. Mai.,135 DATA 1. Jun.,152, 15. Jun.,166 DATA 1. Jul.,182, 15. Jul.,196 DATA 1. Aug.,213, 15. Aug.,227 DATA 1. Sep.,244, 15. Sep.,258 DATA 1. Okt.,274, 15. Okt.,288 DATA 1. Nov.,305, 15. Nov.,319 DATA 1. Dez.,335, 15. Dez.,349