Comment faire pour calculer les phases de la Lune
l'auteur: ALAN GRAFF
{
Comme Robert Forbes dit à Tous le 25 Avril 94...
RF> quelqu'un aurait une idée de comment faire un algorithme pour
RF> calculer la phase de la lune étant donné la date?
Ici ya go:
TYPE DATETYPE = enregistrement
jour:MOT
MOIS:MOT
ANNÉE:MOT
dow:mot
fin
{=================================================================}
Procédure GregorianToJulianDN(Année, Mois, Jour:Integer
var JulianDN :LongInt)
var
Siècle
XYear : LongInt
begin {GregorianToJulianDN}
Si Mois <= 2 alors commencer
Année := pred(Année)
Mois= 12 Mois
fin
Mois= Mois - 3
Siècle := Année div 100
XYear := An mod 100
Siècle := (Siècle * D1) shr 2
XYear := (XYear * D0) shr 2
JulianDN : = (((( Mois * 153) 2) div 5 Jours) D2
XYear Siècle
end {GregorianToJulianDN}
{=================================================================}
la Fonction de phase de lune(Date:Datetype):Real
(***************************************************************)
(* *)
(* Détermine APPROXIMATIVE de la phase de la lune (pourcentage allumé) *)
(* 0.00 = Nouvelle lune, 1.00 = Pleine lune *)
(* en Raison de l'arrondissement, plein de valeurs peut éventuellement ne jamais être atteint *)
(* Valable à partir de Oct. 15, 1582 à Fév. 28, 4000 *)
(* Calculs de BASE et programme trouvé dans l' *)
(* '119 Programmes Pratiques Pour Le TRS-80 Ordinateur de Poche' par un *)
(* John Clark Craig, ONGLET Livres, 1982 *)
(* Conversion en Turbo Pascal par Alan Graff, Wheelersburg, OH *)
(* *)
(***************************************************************)
var
j:longint m:réel
Begin
GregorianToJulianDN(Date.Année,La Date.Le Mois,La Date.Jour,J)
M:=(J 4.867)/ 29.53058
M:=2*(M-Int(m))-1
phases de lune:=Abs(M)
fin
Phase de la lune
Phase de la lune : Plusieurs milliers de conseils pour vous faciliter la vie.
Comment faire pour calculer les phases de la Lune
l'auteur: ALAN GRAFF
{
Comme Robert Forbes dit a Tous le 25 Avril 94...
RF> quelqu'un aurait une idee de comment faire un algorithme pour
RF> calculer la phase de la lune etant donne la date?
Ici ya go:
TYPE DATETYPE = enregistrement
jour:MOT
MOIS:MOT
ANNEE:MOT
dow:mot
fin
{=================================================================}
Procedure GregorianToJulianDN(Annee, Mois, Jour:Integer
var JulianDN :LongInt)
var
Siecle
XYear : LongInt
begin {GregorianToJulianDN}
Si Mois <= 2 alors commencer
Annee := pred(Annee)
Mois= 12 Mois
fin
Mois= Mois - 3
Siecle := Annee div 100
XYear := An mod 100
Siecle := (Siecle * D1) shr 2
XYear := (XYear * D0) shr 2
JulianDN : = (((( Mois * 153) 2) div 5 Jours) D2
XYear Siecle
end {GregorianToJulianDN}
{=================================================================}
la Fonction de phase de lune(Date:Datetype):Real
(***************************************************************)
(* *)
(* Determine APPROXIMATIVE de la phase de la lune (pourcentage allume) *)
(* 0.00 = Nouvelle lune, 1.00 = Pleine lune *)
(* en Raison de l'arrondissement, plein de valeurs peut eventuellement ne jamais etre atteint *)
(* Valable a partir de Oct. 15, 1582 a Fev. 28, 4000 *)
(* Calculs de BASE et programme trouve dans l' *)
(* '119 Programmes Pratiques Pour Le TRS-80 Ordinateur de Poche' par un *)
(* John Clark Craig, ONGLET Livres, 1982 *)
(* Conversion en Turbo Pascal par Alan Graff, Wheelersburg, OH *)
(* *)
(***************************************************************)
var
j:longint m:reel
Begin
GregorianToJulianDN(Date.Annee,La Date.Le Mois,La Date.Jour,J)
M:=(J 4.867)/ 29.53058
M:=2*(M-Int(m))-1
phases de lune:=Abs(M)
fin