Zurück zur Homepage

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