Hallo AXMD,
manchmal habe ich ein offenes Ohr für astronomische Fragen, und nachdem mich Deine Frage interessiert hat, habe ich ein wenig gegoogelt, um an die Grundlagen zu kommen. Unter
lexikon.astronomie.info/zeitgleichung findet man dieselben, aber Du wolltest ja ein Code-Beispiel, welches hier folgt:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| procedure TForm1.Button1Click(Sender: TObject); var Laenge : Real;//Längengrad des Standorts, Bogenmaß Breite : Real;//Breitengrad des Standorts, Bogenmaß h : Real;//Korrekturfaktor für Lichtbeugung in Horzontnähe Deklination : Real; Zeitdifferenz : Real; Zeitgleichung : Real; Woz_a : Real;//wahre Ortszeit Sonnenaufgang Woz_u : Real;//wahre Ortszeit Sonnenuntergang Moz_a : Real;//mittlere Ortszeit Sonnenaufgang Moz_u : Real;//mittlere Ortszeit Sonnenuntergang T : Real;//Tageszahl, 1.Jan=1, 31.Dez=365 bzw. 366 Aufgang_Std, Aufgang_Min : Real; Untergang_Std, Untergang_Min : Real; begin Laenge:=0.1745329;//10°ö.L. Breite:=0.8726646;//50°n.B. T:=90;//31. März h:=-0.0145;//Konstante, 50 Bogenminuten Deklination:=0.40954*sin(0.0172*(T-79.349740)); Zeitdifferenz:=12*arccos((sin(h)-sin(Breite)*sin(Deklination))/(cos(Breite)*cos(Deklination)))/Pi; Woz_a:=12-Zeitdifferenz; Woz_u:=12+Zeitdifferenz; Zeitgleichung:=-0.1752*sin(0.033430*T+0.5474)-0.1340*sin(0.018234*T-0.1939); Moz_a:=Woz_a-Zeitgleichung+((15-(Laenge*180/Pi))*4/60); Moz_u:=Woz_u-Zeitgleichung+((15-(Laenge*180/Pi))*4/60); Aufgang_Std:=Int(Moz_a); Aufgang_Min:=Int(60*(Moz_a-Int(Moz_a))); Edit1.Text:=FloatToStr(Aufgang_Std)+' h '+FloatToStr(Aufgang_Min)+' m'; Untergang_Std:=Int(Moz_u); Untergang_Min:=Int(60*(Moz_u-Int(Moz_u))); Edit2.Text:=FloatToStr(Untergang_Std)+' h '+FloatToStr(Untergang_Min)+' m'; end; |
Wie gesagt, es ist nur ein simples Beispiel, das aber immerhin recht gut funktioniert (hab's mit dem Kosmos-Himmelsjahr verglichen, es treten Abweichungen bis zu 7 Minuten auf), für die Polarregionen sollte man es aber lieber nicht verwenden.
Nicht vergessen: Die Unit "Math" muß eingebunden werden!
Man kann noch einiges verbessern, z.B. könnten die Standortkoordinaten im normalen Grad-Modus eingegeben werden und die Tageszahl kann man auch aus dem Datum errechnen.
@Foxy: Von der Berechnung des Osterdatums zum Sonnenaufgang ist ein himmelweiter Unterschied. Ostern gibt's nur einmal im Jahr, und das überall gleichzeitig, den Sonnenauf- bzw. -untergang gibt's täglich, und dazu noch stark vom Standort abhänging.
Gruß,
Adrian
P.S.: Hoppla, da habe ich doch übersehen, daß Du auch noch Berechnungen für den Mond willst, werde mal schauen, was ich da finde...