schau mal hier nach, dort werden Sie geholfen:
http://www.astroexcel.de/download.htm
Gruß
Holger
gib mir mal die Mondphasen von 2003, so nach dem Motto:
15.03.2003 1 (Voll)
22.03.2003 1/2
29.03.2003 0
.
.
.
und die genaue Phasendauer, ich glaube es sind 27,5 Tage von voll zu voll.
Ich könnte dann versuchen mit diese Werte als Sinuslinie darzustellen.
Gruß Heinz
Hier zwei Funktinen, die, auf ein Datum angewandt, die Mondphase zurückgeben.
Function Mondphase(Datum As Date) As String
Const SynodMonat As Double = 29.530588
Const SynodVollmond As Double = 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
Function IstVollmondtag(Datum As Date) As Boolean
Const SynodMonat As Double = 29.530588
Const SynodStart As Double = 105.6213922 'IstVollmondTag()
'Const SynodStart As Double = 113.0040392 'IstHalbmondTagAbnehmend()
'Const SynodStart 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 DatumHilf As Date
Dim i As Long
If Year(Datum) > 1900 And Year(Datum) < 2100 Then
OK = False
For i = 1 To 2470
DatumDbl = SynodStart + i * SynodMonat
DatumLng = Int(DatumDbl)
DatumHilf = CDate(DatumLng)
If DatumHilf = Datum Then
OK = True
Exit For
End If
Next i
Else
OK = ""
End If
IstVollmondtag = OK
End Function
Code eingefügt mit: Excel Code Jeanie
Mit freundlichen Grüssen
Thomas Ramel
- MVP für MS-Excel -
hast du auch die genauen Uhrzeiten dazu?
Die Zeitabstände sind nicht gleich nur mit dem Datum.
7; 8; 8; 7 Tage für jedes Viertel.
Das war auch früher mein Problem bei dieser Geschichte, ich habe mir allerdings nie die Mühe gemacht weiter zu suchen.
Gruß Heinz
Hier die Sinuslinie:
In B10: 16.04.2003 12:00
In C10: =b10+180:00 (180:00 ist der Stundenabstand zwischen den Vierteln)
Formel kopieren
In B11 =SIN(B10*PI())*-1
Formel kopieren
Dann Diagramm mit diesen Werten mit benutzerdefinierten Linien; Weiche Linien; zeichnen lassen
Gruß Heinz
PS: Ich schicke dir die Mondphasenmappe