Re: Calcul des phases lunaires pour la date du jour
Publié : ven. 05/déc./2025 13:21
Bonjour et merci pour ta vigilance.Micoute a écrit : ven. 05/déc./2025 10:10 C'est du très bon travail, mais j'ai repéré une erreur de procédure.
Voici la modification que j'ai faite, car le programme disait "Gibbeuse croissante", alors que la pleine lune était hier.
Code : Tout sélectionner
Procedure.s PhaseLune(age.f, illumination.f) ; illumination en % (0..100), age en jours (0..29.53) Protected quartierTol.f = 2.0 ; tolérance autour de 50% Protected ageTolQ.f = 1.0 ; tolérance autour des quartiers Protected NouvelleTol.f = 1.0 ; tolérance nouvelle lune Protected seuilPleine.f = 99.5 ; seuil pleine lune If illumination <= NouvelleTol ProcedureReturn "Nouvelle lune" ; Premier quartier (autour de 7.4 j et ~50%) ElseIf Abs(illumination - 50.0) <= quartierTol And Abs(age - 7.4) <= ageTolQ ProcedureReturn "Premier quartier" ; Dernier quartier (autour de 22.2 j et ~50%) ElseIf Abs(illumination - 50.0) <= quartierTol And Abs(age - 22.2) <= ageTolQ ProcedureReturn "Dernier quartier" ; Pleine lune (illumination très haute, optionnellement proche de 14.8 j) ElseIf illumination >= seuilPleine ProcedureReturn "Pleine lune" ; Croissant / Gibbeuse (croissante) ElseIf illumination > NouvelleTol And illumination < 50.0 And age < 7.4 ProcedureReturn "Premier croissant" ElseIf illumination > 50.0 And illumination < seuilPleine And age < 14.8 ProcedureReturn "Gibbeuse croissante" ; Gibbeuse / Croissant (décroissante) ElseIf illumination > 50.0 And illumination < seuilPleine And age >= 14.8 And age < 22.2 ProcedureReturn "Gibbeuse décroissante" ElseIf illumination > NouvelleTol And illumination < 50.0 And age >= 22.2 ProcedureReturn "Dernier croissant" Else ; Secours: basé sur l'âge en temps long (catégories larges) If age < 7.4 ProcedureReturn "Premier croissant" ElseIf age < 9.0 ProcedureReturn "Premier quartier" ElseIf age < 14.8 ProcedureReturn "Gibbeuse croissante" ElseIf age < 16.5 ProcedureReturn "Pleine lune" ElseIf age < 22.2 ProcedureReturn "Gibbeuse décroissante" ElseIf age < 23.8 ProcedureReturn "Dernier quartier" Else ProcedureReturn "Dernier croissant" EndIf EndIf EndProcedure
Il se trouve que, moi aussi, hier, je me suis aperçu de cela mais, je n'ai corrigé que le code de l'Arduino pas le programme PB.

