Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
import math, time
def sonnenstand(timestamp):
#01.01.2000 12:00 war 946724400.0 (Timestamp)
n = timestamp - 946724400.0
n = n / 24 / 60 / 60
L = 280.46 + 0.9856474 * n
g = 357.528 + 0.9856003 * n
d = L + 1.915 * math.sin(math.radians(g)) + 0.02 * math.sin(math.radians(2*g))
e = 23.439 - 0.0000004 * n
ZAHLER = math.cos(math.radians(e)) * math.sin(math.radians(d))
NENNER = math.cos(math.radians(d))
a = math.atan(ZAHLER/NENNER)
sonnenstand(time.time()+3600)
Da Du ja nur radians() benutzt, ist es kein Wunder, dass eine Angabe in rad zurückkommt! In der Doku zu math bekommst Du eine Funktion, die das wieder in Grad zurückwandelt.
Ist für mich dennoch ziemlich unwahrscheinlich, da eine Differenz von 3600 Sekunden ja immerhin eine Differenz von 15°C ergeben müsste - oder liege ich da falsch?
und ich vermute, dass hier auch ein Fehler liegt, weil hier eine Ganzzahldivision vorliegt, die wahrscheinlich aber nicht gemeint ist. Also mal so probieren:
Ja, du hast Recht, aber auch das bringt wohl nicht den Unterschied. Ich muss irgendwo einen Fehler in der Rechnung haben, den ich aber einfach nicht sehen will =(
Das ist keine Ganzzahldivision, weil `timestamp` ja als Fliesskommazahl in die Funktion kommt. Da Julianische Datum dürfte trotzdem falsch sein, weil 2001-01-01 ja nicht 0 ist.
Und im Text von der Wikipediaseite stehen teilweise Bedingungen, dass bestimmte Werte zum Beispiel zwischen 0 und 360 liegen müssen und auch etwas über Vorzeichen, die man eventuell anpassen muss. Darauf wird im Quelltext aber nirgends eingegangen.
BlackJack hat geschrieben:Das ist keine Ganzzahldivision, weil `timestamp` ja als Fliesskommazahl in die Funktion kommt.
Ups!
Iopodx hat geschrieben:Ja, aber bei Trigonometrischen Funktionen sollte man das ja vergessen können...
Korrekt. Auch die Vorzeichengeschichte löst das Problem nicht. Dabei geht es ja - wenn ich nichts übersehen habe - nur um die Positionierung im richtigen Quadranten.
Ja mich hat das nur irritiert, da wir - schulisch - das Quadrat immernoch nach den Term schreiben. Man schreibt ja auch 2² und nicht ²2, oder?
Andere Sache: Ich will nur die Stunden und Minuten vom aktuellen Tag haben - ausgehend vom Timestamp. Jemand eine Idee? Das Teilen durch 86400 erscheint mir sinnvoll, gibt mir aber nur ~ 14.000 Sekunden zurück was gerade 3 Stunden sind?
Korrekterweise schreib man (tan(x))^2.
In der Praxis ist oft in einer Formel klar, welches die Argumente fuer die trigonometrischen Funktionen sind, sodass man die Klammern um das Argument weg laesst, also tan x schreibt. tan x^2 ohne Klammern hiesse ja aber eigentlich tan (x^2), also schreibt man das Quadrat an den Tangens dran. Eigentlich eine bloede Notation, aber unheimlich praktisch.
Iopodx hat geschrieben:Andere Sache: Ich will nur die Stunden und Minuten vom aktuellen Tag haben - ausgehend vom Timestamp. Jemand eine Idee? Das Teilen durch 86400 erscheint mir sinnvoll, gibt mir aber nur ~ 14.000 Sekunden zurück was gerade 3 Stunden sind?