Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mondphasenberechnung

Mondphasenberechnung
28.12.2006 17:44:48
reiner
Hallo Leute,
unter https://www.herber.de/forum/messages/246229.html fand ich eine Excel-Funktion zur Berechnung der Mondphasen (Vollmond, Neumond, abnehmend, zunehmend) sh. auch den nachfolgenden Pro-grammcode aus dem genannten Beispiel.
Diese Funktion arbeitet problemlos, allerdings stimmen die ermittelten Ergebnisse nicht immer mit den in vielen Kalendern abgedruckten Symbolen mit der jeweiligen Angabe des Tages der Mondphasen überein.
Die Ergebnisse weichen bis zu 1 Tag von den (vermutlich korrekten)Kalendereinträgen ab.


Function Mondphase(Datum As Date) As String
    Const SynodMonat As Double = 29.530588
    Const SynodVollmond As Doub-le = 105.6213922 'IstVollmondTag()
   'Const SynodStart As Double = 113.0040392 'IstHalbmondTagAbnehmend()
   Const SynodNeumond As Double = 120.3866862 'IstNeumondTag()
   'Const SynodStart As Double = 127.7693332 'IstHalbmondTagZunehmend()
   Dim OK As Boolean
    Dim DatumDbl As Double
    Dim DatumLng As Long
    Dim DatumVollMond As Date
    Dim DatumNeuMond As Date
    Dim i As Long
    If Year(Datum) > 1900 And Year(Datum) < 2100 Then
        'Berechnung ob Vollmond oder nächster Vollmondtag
       For i = 1 To 2470
             DatumDbl = SynodVollmond + i * SynodMonat
             DatumLng = Int(DatumDbl)
             DatumVollMond = CDate(DatumLng)
            If DatumVollMond = Datum Then
                 Mondphase = "Vollmond"
                Exit Function
                ElseIf DatumVollMond > Datum Then
                 Mondphase = "zunehmend"
                Exit For
            End If
        Next i
        'Berechnung ob Neumond oder nächster Neumondtag
       For i = 1 To 2470
             DatumDbl = SynodNeumond + i * SynodMonat
             DatumLng = Int(DatumDbl)
             DatumNeuMond = CDate(DatumLng)
            If DatumNeuMond = Datum Then
                 Mondphase = "Neumond"
                Exit Function
                ElseIf DatumNeuMond > Datum Then
                Exit For
            End If
        Next i
        'Berechnung ob Neu- oder Vollmond näher
       If DatumNeuMond < DatumVollMond Then
             Mondphase = "abnehmend"
        End If
    End If
End Function


Leider verfüge ich über keine Kenntnis aus dem Bereich der Astrophysik um den Fehler zu beseitigen bzw. den Code zu korrigieren.
Hat jemand mit dieser Funktion ähnliche Erfahrungen gemacht?
Kennt evtl. jemand eine andere (fehlerfreie)Möglichkeit zur Berechnung der Mondphasen?
Unter www.astroexcel.de habe ich übrigens bereits vergeblich nach einer Alternative gesucht.
mfg
reiner

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mondphasenberechnung
28.12.2006 18:15:18
HermannZ
Hallo reiner;
probier einmal diese Funktion;
'Funktion zum bestimmen der Mondphasen
'Ein Synodischer Monat = 29 Tage, 12 Stunden und 44 Minuten oder 29,5305589

Function Mondphase(Datum As Date) As String
Const FirstMond As Double = 105.49167
Const SynodMond As Double = 29.5305589
Dim i As Double
Dim ii As Double
i = Int((Datum - FirstMond) / SynodMond) * SynodMond
ii = ((Datum - FirstMond) - i) / SynodMond
If ii < 0 Or ii > 0.95 Then
ii = 1
Else
ii = ((Datum - FirstMond) - i) / SynodMond
End If
Select Case ii
Case Is < 0.05: Mondphase = "Vollmond"
Case Is < 0.45: Mondphase = "abnehmender Mond"
Case Is < 0.55: Mondphase = "Neumond"
Case Is < 0.95: Mondphase = "zunehmender Mond"
Case Else: Mondphase = "Vollmond"
End Select
End Function

Gruß HermannZ
Anzeige
AW: Mondphasenberechnung
28.12.2006 20:09:36
reiner
Hallo Hermann,
vielen Dank für den Vorschlag; beim Testen fiel mir jedoch auf dass immer an 3 aufeinanderfolgenden Tagen die Anzeige Vollmond bzw. Neumond erscheint.
Ich möchte jedoch erreichen dass die jeweilige Anzeige immer nur an einem, dem betreffenden, Tag -wie im Kalender abgedruckt- angezeigt wird.
Ob mit diesem Code eine Anzeige des nächsten bzw. vorigen Vollmondtages/Neumondtages möglich ist habe ich noch nicht untersucht. Ansonsten ist der Code erfreulich kurz und übersichtlich gehalten - aber leider entspricht er nicht meiner Vorstellung.
mfg
reiner
AW: Mondphasenberechnung
28.12.2006 23:19:54
reiner
Hallo {Boris},
sehr schön, aber das Beispiel war mir bekannt - es enthält keine Mondphasenberechnung; in der ursprünglichen Anfrage hatte ich schon darauf verwiesen dass unter www.astroexcel.de kein geeignetes Beispiel zum Download vorrätig ist.
mfg
reiner
AW: Mondphasenberechnung
28.12.2006 23:59:44
Gerd
Hi,
erklär mal, was du unter Mondphasenberechnung verstehst.
Ich finde das bei Astroexcel.
mfg Gerd
AW: 1. thread
29.12.2006 17:12:11
reiner
hallo thomas,
nur zur Klarstellung, ich hatte in meiner Anfrage darauf verwiesen, dass ich bereits eine Excel-Funktion für die Berechnung eingesetzt hatte die aber teilweise falsche Ergebnisse ermittelte, sh. Anfrage vom 28.12.2006 17:44:48.
Das Beispiel „Mondberechnung“ von www.astroexcel.de habe ich mir ebenfalls angesehen und festge-stellt dass die besagte Berechnung mit Formeln durchgeführt wird und nicht (wie erhofft) mit einer Funkti-on. Diese Berechnung erscheint mir auch sehr kompliziert da Ergebnisse aus verschiedenen Blättern zusammengeführt werden müssen um ein korrektes Ergebnis zu bekommen. Ich hatte auch darauf ver-wiesen dass mir Kenntnise aus dem Bereich der Astrophysik fehlen ansonsten hätte ich wohl kaum das Forum mit meiner Anfrage belästigt.
Ich erwarte keine fertigen Lösungen, manchmal hilft auch schon ein Tipp; außerdem ist es jedem Teil-nehmer freigestellt auf die Fragen anderer Teilnehmer zu antworten oder auch nicht.
Deine Frage:“.. immer noch zu faul selber was zutun?“ ist im übrigen eine Unterstellung. Woher willst Du wissen ob ich nicht inzwischen selbst versucht habe eine Lösung zu erarbeiten?
Hämische Bemerkungen helfen nicht weiter, dieser Hinweis gilt auch für den Verfasser des per Link zitier-ten Beitrags, aber vielleicht hast du dich ja danach besser gefühlt.
reiner
Anzeige
Ach Leute, es Weihnachtet sehr :-)))
29.12.2006 18:29:22
Sonnenpeter
Enttäuschung ist das Ergebnis falscher Erwartungen.
Gruß Sonnepeter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge