Gladir.com - DarkBASIC - Astronomie - Phase lunaire


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 DarkBASIC suivant:
FOR I=1 TO 31
 CircleType#=MoonPhase(1999,11,I)
 IF CircleType#>0.97
      PRINT STR$(I)+" novembre 1999, Phase de la lune:Pleine lune"
 ELSE
     IF CircleType#<0.03
         PRINT STR$(I)+" novembre 1999, Phase de la lune:Pas de lune"
     ELSE
         IF (CircleType#>0.46) AND (CircleType#<0.53)
             PRINT STR$(I)+" novembre 1999, Phase de la lune: Quart de lune"
         ENDIF
     ENDIF
 ENDIF
NEXT
FOR I=1 TO 31
 CircleType#=MoonPhase(2007,8,I)
 IF CircleType#>0.97
     PRINT STR$(I)+" août 2007, Phase de la lune:Pleine lune"
 ELSE
     IF CircleType#<0.03
         PRINT STR$(I)+" août 2007, Phase de la lune:Pas de lune"
     ELSE
         IF (CircleType#>0.46) AND (CircleType#<0.53)
             PRINT STR$(I)+" août 2007, Phase de la lune: Quart de lune"
         ENDIF
     ENDIF
 ENDIF
NEXT
WAIT KEY

FUNCTION MoonPhase(Year,Month,Day)
 IF Month<=2 THEN DEC Year:INC Month,12
 DEC Month,3
 XYear=Year MOD 100
 Century=INT((INT(Year / 100)*146097) / 4)
 XYear=INT((XYear*1461) / 4)
 M#=(INT(((((Month*153)+2)/ 5)+Day)+1721119+XYear+Century)+4.867)/29.53058
 ReturnValue#=ABS(2*(M#-INT(M#))-1)
ENDFUNCTION ReturnValue#
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