Function neumond(jahr As Integer, monat As Integer, tag As Integer, kw As Integer) As Double



jz = jahr
jzm = monat
jzd = tag

jzjahr = jz + (jzm / 13) + (jzd / (31 * 13))

k = (jzjahr - 2000) * 12.3685
If k - Int(k) > 0.5 Then
    k = Int(k) + 1
Else
    k = Int(k)
End If


kwert = k + kw



k = kwert - 1


tk = k / 1236.85


m = 2.5534 + 29.10535669 * k - 0.0000218 * tk ^ 2 - 0.00000011 * tk ^ 3
Ms = 201.5643 + 385.816935 * k + 0.1017438 * tk ^ 2 + 0.00001239 * tk ^ 3 - 0.000000058 * tk ^ 4
F = 160.7108 + 390.670502 * k - 0.0016341 * tk ^ 2 - 0.00000227 * tk ^ 3
om = 124.7746 - 1.5637558 * k + tk ^ 2 * 0.0020691 + 0.00000215 * tk ^ 3
e = 1 - 0.002516 * tk - 0.0000074 * tk ^ 2
e2 = e * e

a1 = 299.77 + 0.107408 * k - 0.009173 * tk
a2 = 251.88 + 0.016321 * k
a3 = 251.83 + 26.651886 * k
a4 = 349.42 + 36.412478 * k
a5 = 84.66 + 18.206239 * k
a6 = 141.74 + 53.303771 * k
a7 = 207.14 + 2.453732 * k
a8 = 154.84 + 7.30686 * k
a9 = 34.52 + 27.261239 * k
a10 = 207.19 + 0.121824 * k
a11 = 291.34 + 1.844379 * k
a12 = 161.72 + 24.198154 * k
a13 = 239.56 + 25.513 * k
a14 = 331.55 + 3.592518 * k


a1 = 0.000325 * sin(a1 * 3.14159265358979 / 180)
a2 = 0.000165 * sin(a2 * 3.14159265358979 / 180)
a3 = 0.000164 * sin(a3 * 3.14159265358979 / 180)
a4 = 0.000126 * sin(a4 * 3.14159265358979 / 180)
a5 = 0.00011 * sin(a5 * 3.14159265358979 / 180)
a6 = 0.000062 * sin(a6 * 3.14159265358979 / 180)
a7 = 0.00006 * sin(a7 * 3.14159265358979 / 180)
a8 = 0.000056 * sin(a8 * 3.14159265358979 / 180)
a9 = 0.000047 * sin(a9 * 3.14159265358979 / 180)
a10 = 0.000042 * sin(a10 * 3.14159265358979 / 180)
a11 = 0.00004 * sin(a11 * 3.14159265358979 / 180)
a12 = 0.000037 * sin(a12 * 3.14159265358979 / 180)
a13 = 0.000035 * sin(a13 * 3.14159265358979 / 180)
a14 = 0.000023 * sin(a14 * 3.14159265358979 / 180)


ages = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 + a14

'Neumond

sn1 = -0.4072 * sin((Ms) * 3.14159265358979 / 180)
sn2 = 0.17241 * sin((m) * 3.14159265358979 / 180) * e
sn3 = 0.01608 * sin((2 * Ms) * 3.14159265358979 / 180)
sn4 = 0.01039 * sin((2 * F) * 3.14159265358979 / 180)
sn5 = 0.00739 * sin((Ms - m) * 3.14159265358979 / 180) * e
sn6 = -0.00514 * sin((Ms * m) * 3.14159265358979 / 180) * e
sn7 = 0.00208 * sin((2 * m) * 3.14159265358979 / 180) * e2
sn8 = -0.00111 * sin((Ms - 2 * F) * 3.14159265358979 / 180)
sn9 = -0.00057 * sin((Ms + 2 * F) * 3.14159265358979 / 180)
sn10 = 0.00056 * sin((2 * Ms + m) * 3.14159265358979 / 180) * e
sn11 = -0.00042 * sin((3 * Ms) * 3.14159265358979 / 180)
sn12 = 0.00042 * sin((m + 2 * F) * 3.14159265358979 / 180) * e
sn13 = 0.00038 * sin((m - 2 * F) * 3.14159265358979 / 180) * e
sn14 = -0.00024 * sin((2 * Ms - m) * 3.14159265358979 / 180) * e
sn15 = -0.00017 * sin((om) * 3.14159265358979 / 180)
sn16 = -0.00007 * sin((2 * m + Ms) * 3.14159265358979 / 180)
sn17 = 0.00004 * sin((2 * Ms - F) * 3.14159265358979 / 180)
sn18 = 0.00004 * sin((3 * m) * 3.14159265358979 / 180)
sn19 = 0.00003 * sin((Ms + m - 2 * F) * 3.14159265358979 / 180)
sn20 = 0.00003 * sin((m + Ms + 2 * F) * 3.14159265358979 / 180)
sn21 = -0.00003 * sin((Ms + m + 2 * F) * 3.14159265358979 / 180)
sn22 = 0.00003 * sin((Ms - m + 2 * F) * 3.14159265358979 / 180)
sn23 = -0.00002 * sin((Ms - m - 2 * F) * 3.14159265358979 / 180)
sn24 = -0.00002 * sin((3 * Ms + m) * 3.14159265358979 / 180)
sn25 = 0.00002 * sin((4 * m) * 3.14159265358979 / 180)




sn = sn1 + sn2 + sn3 + sn4 + sn5 + sn6 + sn7 + sn8 + sn9 + sn10 + sn11 + sn12 + sn13 + sn14 + sn15 + sn16 + sn17 + sn18 + sn19 + sn20 + sn21 + sn22 + sn23 + sn24 + sn25


jdeneumond = 2451550.09765 + 29.530588853 * k + 0.0001337 * tk * tk - 0.00000015 * tk ^ 3 + 0.00000000073 * tk ^ 4 + sn + ages - 1 / (60 * 24)

neumond = jdeneumond


End Function








Function vollmond(jahr As Integer, monat As Integer, tag As Integer, kw As Integer) As Double



jz = jahr
jzm = monat
jzd = tag

jzjahr = jz + (jzm / 13) + (jzd / (31 * 13))

k = (jzjahr - 2000) * 12.3685
If k - Int(k) > 0.5 Then
    k = Int(k) + 1
Else
    k = Int(k)
End If


kwert = k + kw




k = kwert - 1.5

tk = k / 1236.85


m = 2.5534 + 29.10535669 * k - 0.0000218 * tk ^ 2 - 0.00000011 * tk ^ 3
Ms = 201.5643 + 385.816935 * k + 0.1017438 * tk ^ 2 + 0.00001239 * tk ^ 3 - 0.000000058 * tk ^ 4
F = 160.7108 + 390.670502 * k - 0.0016341 * tk ^ 2 - 0.00000227 * tk ^ 3
om = 124.7746 - 1.5637558 * k + tk ^ 2 * 0.0020691 + 0.00000215 * tk ^ 3
e = 1 - 0.002516 * tk - 0.0000074 * tk ^ 2
e2 = e * e

a1 = 299.77 + 0.107408 * k - 0.009173 * tk
a2 = 251.88 + 0.016321 * k
a3 = 251.83 + 26.651886 * k
a4 = 349.42 + 36.412478 * k
a5 = 84.66 + 18.206239 * k
a6 = 141.74 + 53.303771 * k
a7 = 207.14 + 2.453732 * k
a8 = 154.84 + 7.30686 * k
a9 = 34.52 + 27.261239 * k
a10 = 207.19 + 0.121824 * k
a11 = 291.34 + 1.844379 * k
a12 = 161.72 + 24.198154 * k
a13 = 239.56 + 25.513 * k
a14 = 331.55 + 3.592518 * k


a1 = 0.000325 * sin(a1 * 3.14159265358979 / 180)
a2 = 0.000165 * sin(a2 * 3.14159265358979 / 180)
a3 = 0.000164 * sin(a3 * 3.14159265358979 / 180)
a4 = 0.000126 * sin(a4 * 3.14159265358979 / 180)
a5 = 0.00011 * sin(a5 * 3.14159265358979 / 180)
a6 = 0.000062 * sin(a6 * 3.14159265358979 / 180)
a7 = 0.00006 * sin(a7 * 3.14159265358979 / 180)
a8 = 0.000056 * sin(a8 * 3.14159265358979 / 180)
a9 = 0.000047 * sin(a9 * 3.14159265358979 / 180)
a10 = 0.000042 * sin(a10 * 3.14159265358979 / 180)
a11 = 0.00004 * sin(a11 * 3.14159265358979 / 180)
a12 = 0.000037 * sin(a12 * 3.14159265358979 / 180)
a13 = 0.000035 * sin(a13 * 3.14159265358979 / 180)
a14 = 0.000023 * sin(a14 * 3.14159265358979 / 180)


ages = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + a11 + a12 + a13 + a14


'Vollmond

sv1 = -0.40614 * sin((Ms) * 3.14159265358979 / 180)
sv2 = 0.17302 * sin((m) * 3.14159265358979 / 180) * e
sv3 = 0.01614 * sin((2 * Ms) * 3.14159265358979 / 180)
sv4 = 0.01043 * sin((2 * F) * 3.14159265358979 / 180)
sv5 = 0.00734 * sin((Ms - m) * 3.14159265358979 / 180) * e
sv6 = -0.00515 * sin((m + Ms) * 3.14159265358979 / 180) * e
sv7 = 0.00209 * sin((2 * m) * 3.14159265358979 / 180) * e2
sv8 = -0.00111 * sin((Ms - 2 * F) * 3.14159265358979 / 180)
sv9 = -0.00057 * sin((Ms + 2 * F) * 3.14159265358979 / 180)
sv10 = 0.00056 * sin((2 * Ms + m) * 3.14159265358979 / 180) * e
sv11 = -0.00042 * sin((3 * m) * 3.14159265358979 / 180)
sv12 = 0.00042 * sin((m + 2 * F) * 3.14159265358979 / 180) * e
sv13 = 0.00038 * sin((m - 2 * F) * 3.14159265358979 / 180) * e
sv14 = -0.00024 * sin((2 * Ms - m) * 3.14159265358979 / 180) * e
sv15 = -0.00017 * sin((om) * 3.14159265358979 / 180)
sv16 = -0.00007 * sin((Ms + 2 * m) * 3.14159265358979 / 180)
sv17 = 0.00004 * sin((2 * Ms - 2 * F) * 3.14159265358979 / 180)
sv18 = 0.00004 * sin((3 * m) * 3.14159265358979 / 180)
sv19 = 0.00003 * sin((m + Ms - 2 * F) * 3.14159265358979 / 180)
sv20 = 0.00003 * sin((2 * Ms + 2 * F) * 3.14159265358979 / 180)
sv21 = -0.00003 * sin((Ms + m + 2 * F) * 3.14159265358979 / 180)
sv22 = 0.00003 * sin((Ms - m + 2 * F) * 3.14159265358979 / 180)
sv23 = -0.00002 * sin((Ms - m - 2 * F) * 3.14159265358979 / 180)
sv24 = -0.00002 * sin((m + 3 * Ms) * 3.14159265358979 / 180)
sv25 = 0.00002 * sin((4 * Ms) * 3.14159265358979 / 180)


sv = sv1 + sv2 + sv3 + sv4 + sv5 + sv6 + sv7 + sv8 + sv9 + sv10 + sv11 + sv12 + sv13 + sv14 + sv15 + sv16 + sv17 + sv18 + sv19 + sv20 + sv21 + sv22 + sv23 + sv24 + sv25


jdevollmond = 2451550.09765 + 29.530588853 * k + 0.0001337 * tk * tk - 0.00000015 * tk ^ 3 + 0.00000000073 * tk ^ 4 + sv + ages - 1 / (60 * 24)


vollmond = jdevollmond



End Function



Function phase(jahr As Integer, monat As Integer, tag As Integer, stunde As Integer, _
 min As Integer, sec As Double, Zeitzone As Integer) As Double

    Dim a As Double
    Dim b As Integer
    
    If monat > 2 Then
    monat = monat
    jahr = jahr
    End If
    
    If monat <= 2 Then
    monat = monat + 12
    jahr = jahr - 1
    End If
    
    a = Fix(jahr / 100)
    b = 2 - a + Fix(a / 4)
    
    jdp = Fix(365.25 * (jahr + 4716)) + Fix(30.6001 * (monat + 1)) + tag + b + ((stunde + min / 60 + sec / 3600) / 24) - 1524.5
    
    jdp = jdp - Zeitzone / 24

tzd = (jdp - 2451545) / 36525

'D
elm = rang(297.8502042 + 445267.1115168 * tzd - (0.00163 * tzd * tzd) + tzd ^ 3 / 545868 - tzd ^ 4 / 113065000)
'M
ams = rang(357.5291092 + 35999.0502909 * tzd - 0.0001536 * tzd * tzd + tzd ^ 3 / 24490000)
'M
aml = rang(134.9634114 + 477198.8676313 * tzd - 0.008997 * tzd * tzd + tzd ^ 3 / 69699 - tzd ^ 4 / 14712000)

asd = 180 - elm - _
                    (6.289 * sin((3.1415926535 / 180) * ((aml)))) + _
                    (2.1 * sin((3.1415926535 / 180) * ((ams)))) - _
                    (1.274 * sin((3.1415926535 / 180) * (((2 * elm) - _
                            aml)))) - _
                    (0.658 * sin((3.1415926535 / 180) * ((2 * elm)))) - _
                    (0.214 * sin((3.1415926535 / 180) * ((2 * aml)))) - _
                    (0.11 * sin((3.1415926535 / 180) * ((elm))))
                    
phi1 = (1 + Cos((3.1415926535 / 180) * (asd))) / 2


phase = phi1



End Function

 Function tendenz(jahr As Integer, monat As Integer, tag As Integer, stunde As Integer, _
 min As Integer, sec As Double, Zeitzone As Integer) As String

    Dim a As Double
    Dim b As Integer
    
    If monat > 2 Then
    monat = monat
    jahr = jahr
    End If
    
    If monat <= 2 Then
    monat = monat + 12
    jahr = jahr - 1
    End If
    
    a = Fix(jahr / 100)
    b = 2 - a + Fix(a / 4)
    
    jdp = Fix(365.25 * (jahr + 4716)) + Fix(30.6001 * (monat + 1)) + tag + b + ((stunde + min / 60 + sec / 3600) / 24) - 1524.5
    
    jdp = jdp - Zeitzone / 24

tzd = (jdp - 2451545) / 36525

'D
elm = rang(297.8502042 + 445267.1115168 * tzd - (0.00163 * tzd * tzd) + tzd ^ 3 / 545868 - tzd ^ 4 / 113065000)
'M
ams = rang(357.5291092 + 35999.0502909 * tzd - 0.0001536 * tzd * tzd + tzd ^ 3 / 24490000)
'M
aml = rang(134.9634114 + 477198.8676313 * tzd - 0.008997 * tzd * tzd + tzd ^ 3 / 69699 - tzd ^ 4 / 14712000)

asd = 180 - elm - _
                    (6.289 * sin((3.1415926535 / 180) * ((aml)))) + _
                    (2.1 * sin((3.1415926535 / 180) * ((ams)))) - _
                    (1.274 * sin((3.1415926535 / 180) * (((2 * elm) - _
                            aml)))) - _
                    (0.658 * sin((3.1415926535 / 180) * ((2 * elm)))) - _
                    (0.214 * sin((3.1415926535 / 180) * ((2 * aml)))) - _
                    (0.11 * sin((3.1415926535 / 180) * ((elm))))
                    
phi1 = (1 + Cos((3.1415926535 / 180) * (asd))) / 2




tzd = (jdp + (0.5 / 24) - 2451545) / 36525

'D
elm = rang(297.8502042 + 445267.1115168 * tzd - (0.00163 * tzd * tzd) + tzd ^ 3 / 545868 - tzd ^ 4 / 113065000)
'M
ams = rang(357.5291092 + 35999.0502909 * tzd - 0.0001536 * tzd * tzd + tzd ^ 3 / 24490000)
'M
aml = rang(134.9634114 + 477198.8676313 * tzd - 0.008997 * tzd * tzd + tzd ^ 3 / 69699 - tzd ^ 4 / 14712000)

asd = 180 - elm - _
                    (6.289 * sin((3.1415926535 / 180) * ((aml)))) + _
                    (2.1 * sin((3.1415926535 / 180) * ((ams)))) - _
                    (1.274 * sin((3.1415926535 / 180) * (((2 * elm) - _
                            aml)))) - _
                    (0.658 * sin((3.1415926535 / 180) * ((2 * elm)))) - _
                    (0.214 * sin((3.1415926535 / 180) * ((2 * aml)))) - _
                    (0.11 * sin((3.1415926535 / 180) * ((elm))))
                    
phi2 = (1 + Cos((3.1415926535 / 180) * (asd))) / 2


If Round(phi2 - phi1, 3) >= 0 Then
tendenz = "zunehmend"

Else
tendenz = "abnehmend"

End If





End Function





