Mondphasen
Die benutzerdefinierte FunktionProzentNachVollmond liefert
zu einem gegebenen Datum eine Angabe in Prozent seit dem letzten Vollmond. 100%
ist also wieder Vollmond. Die Funktion Mondphase zeigt, wie man so etwas interpretieren
kann, ist aber nur eine Anregung.
Beispieldatei (mondphase.zip 11 kB)
In ein allgemeines Modul:
Option Explicit
Public Function ProzentNachVollmond(dtmDatum As Date) As Double
Const dblFirst As Double = 105.492
Const dblSynod As Double = 29.530588
Dim dblDummy As Double
dblDummy = Int((dtmDatum - dblFirst) / dblSynod) * dblSynod
ProzentNachVollmond = 100 * ((dtmDatum - dblFirst) - dblDummy) _
/ dblSynod
End Function
Public Function Mondphase(dtmDatum As Date) As String
Const dblFirst As Double = 105.492
Const dblSynod As Double = 29.530588
Dim dblDummy As Double
Dim dblProzent As Double
dblDummy = Int((dtmDatum - dblFirst) / dblSynod) * dblSynod
dblProzent = 100 * ((dtmDatum - dblFirst) - dblDummy) _
/ dblSynod
Select Case dblProzent
Case Is < 5: Mondphase = "Vollmond"
Case Is < 45: Mondphase = "abnehmender Mond"
Case Is < 55: Mondphase = "Neumond"
Case Is < 95: Mondphase = "zunehmender Mond"
Case Else: Mondphase = "Vollmond"
End Select
End Function