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, inspiré du code d'Alan Graff, à l'aide du code source ColdFusion suivant :
- <CFSCRIPT>
- function MoonPhase(_Year,_Month,_Day) {
- if(_Month LTE 2) {
- _Year=_Year-1;
- _Month=_Month+12;
- }
- _Month=_Month-3;
- XYear=(_Year mod 100);
- Century=int((int(_Year / 100.0)*146097.0) / 4);
- XYear=int((XYear*1461.0) / 4);
- M=(int(((((_Month*153.0)+2.0)/ 5.0)+_Day)+1721119.0+XYear+Century)+4.867)/29.53058;
- return abs(2.0*(M-int(M))-1);
- }
-
- for(I=1;I LTE 31;I = I + 1) {
- CircleType=MoonPhase(1999,11,I);
- if(CircleType GT 0.97) WriteOutput(I & " novembre 1999, Phase de la lune:Pleine lune<BR>"); else
- if(CircleType LT 0.03) WriteOutput(I & " novembre 1999, Phase de la lune:Pas de lune<BR>"); else
- if((CircleType GT 0.46)and(CircleType LT 0.53)) WriteOutput(I & " novembre 1999, Phase de la lune: Quart de lune<BR>");
- }
- for(I=1;I LTE 31;I = I + 1) {
- CircleType=MoonPhase(2007,8,I);
- if(CircleType GT 0.97) WriteOutput(I & " août 2007, Phase de la lune:Pleine lune<BR>"); else
- if(CircleType LT 0.03) WriteOutput(I & " août 2007, Phase de la lune:Pas de lune<BR>"); else
- if((CircleType GT 0.46)and(CircleType LT 0.53)) WriteOutput(I & " août 2007, Phase de la lune: Quart de lune<BR>");
- }
- </CFSCRIPT>
on obtiendra le résultat suivant :
1 novembre 1999, Phase de la lune: Quart de lune8 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 : Lundi, le 29 décembre 2014