|
Depuis déjà fort longtemps, certaines applications DOS, fournissait la possibilité d'obtenir les phases lunaires
lorsqu'on consultait leur calendrier comme en fait fois la capture du MonsterBook:
Pourtant, même s'il ne s'agit que de convertir une date Julienne en Grégorienne pour ensuite calculer à tous les 30 jours (plus exactement 29,53058) la lune revenant inlassablement,
les systèmes d'exploitation ne l'indique pas!
Vous trouverez la réponse que vous souhaitez, à l'aide du code source LotusScript suivant:
Function MoonPhase(Yr As Integer, Mh As Integer,Dy As Integer) As Double
Dim M As Double
Dim XYear,Century As Long
If Mh <= 2 Then
Yr = Yr - 1
Mh = Mh + 12
End If
Mh = Mh - 3
XYear = Yr Mod 100
Century = (((Yr \ 100) * 146097)) \ 4
XYear = (XYear * 1461) \ 4
M = (Int(((((Mh * 153) + 2) / 5) + Dy) + 1721119 + XYear + Century) + 4.867) / 29.53058
MoonPhase=Abs(2 * (M - Int(M)) - 1)
End Function
Sub Main()
Dim I As Integer
Dim CircleType As Double
For I = 1 To 31
CircleType = MoonPhase(1999, 11, I)
If CircleType > 0.97 Then
Print Str$(I) &" novembre 1999, Phase de la lune:Pleine lune"
Else
If CircleType < 0.03 Then
Print Str$(I) &" novembre 1999, Phase de la lune:Pas de lune"
Else
If (CircleType > 0.46) And (CircleType < 0.53) Then
Print Str$(I) &" novembre 1999, Phase de la lune: Quart de lune"
End If
End If
End If
Next
For I = 1 To 31
CircleType = MoonPhase(2007, 8, I)
If CircleType > 0.97 Then
Print Str$(I) &" août 2007, Phase de la lune:Pleine lune"
Else
If CircleType < 0.03 Then
Print Str$(I) &" août 2007, Phase de la lune:Pas de lune"
Else
If (CircleType > 0.46) And (CircleType < 0.53) Then
Print Str$(I) &" août 2007, Phase de la lune: Quart de lune"
End If
End If
End If
Next
End Sub
|
on obtiendra le résultat suivant:
1 novembre 1999, Phase de la lune: Quart de lune
8 novembre 1999, Phase de la lune:Pas de lune
15 novembre 1999, Phase de la lune: Quart de lune
23 novembre 1999, Phase de la lune:Pleine lune
30 novembre 1999, Phase de la lune: Quart de lune
6 août 2007, Phase de la lune: Quart de lune
13 août 2007, Phase de la lune:Pas de lune
20 août 2007, Phase de la lune: Quart de lune
28 août 2007, Phase de la lune:Pleine lune
|
|
|
| Dernière mise à jour: Mardi, le 7 février 2006 |