Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.sys.mac.programmation > #2780

Re: Calculer les dates de Pleine Lune (Re: Mises à Jours : Soft Méta-Science)

From Eric H <prime-alexis@meta-science.fr>
Newsgroups fr.sci.maths, fr.sci.astronomie, fr.comp.sys.mac.programmation
Subject Re: Calculer les dates de Pleine Lune (Re: Mises à Jours : Soft Méta-Science)
Followup-To fr.comp.sys.mac.programmation
Date 2025-03-14 13:57 +0000
Organization www.meta-science.fr
Message-ID <07b31908227dac22e8bf68c750ae3b18f70c4499@i2pn2.org> (permalink)
References (10 earlier) <2b6d1ce238c99912415aae8db47cea229c625bdc@i2pn2.org> <67d42850$0$16840$426a74cc@news.free.fr> <vr19ha$1bhcj$1@dont-email.me> <67d42bfb$0$12945$426a34cc@news.free.fr> <16307d79f14b4963ff54643d52ce6648b0375da1@i2pn2.org>

Cross-posted to 3 groups.

Followups directed to: fr.comp.sys.mac.programmation

Show all headers | View raw


Le vendredi 14 mars 2025 à 14:45 , Eric H, S'est exprimé : 

> Le vendredi 14 mars 2025 à 14:15 , Michel Talon, S'est exprimé : 
>
>> https://python.jpvweb.com/python/mesrecettespython/doku.php?id=phases_lune
>
> super le code a l'air touffue et semble être complexe il doit prendre en
> compte les nombreuses exceptions des calcules de phases de lune, merci je
> vous tiens au courant
>

Eric(Rê) :

calcule des pahses de lune, j'ai ça comme code en python, tu peux refaire
le code en langage Xojo ?

Loup GPT :

Oui, envoie-moi ton code Python et je le traduirai en Xojo. 😊

Eric(Rê) :

(envoi du code)

Loup GPT :

Oui, je peux traduire ce code Python en Xojo. Voici une version en Xojo
qui implémente les mêmes calculs :

Loup GPT :

Function Bissextile(An As Integer) As Boolean
  If (An Mod 4) = 0 Then
    If (An Mod 100) = 0 And (An Mod 400) <> 0 Then
      Return False
    Else
      Return True
    End If
  Else
    Return False
  End If
End Function

Function PostDate(D1 As String, D2 As String) As Boolean
  Dim J1, M1, A1, J2, M2, A2 As Integer
  Dim parts1() As String = D1.Split("/")
  Dim parts2() As String = D2.Split("/")
  
  J1 = Val(parts1(0))
  M1 = Val(parts1(1))
  A1 = Val(parts1(2))
  
  J2 = Val(parts2(0))
  M2 = Val(parts2(1))
  A2 = Val(parts2(2))
  
  If A2 > A1 Then
    Return True
  ElseIf A2 = A1 Then
    If M2 > M1 Then
      Return True
    ElseIf M2 = M1 Then
      If J2 >= J1 Then
        Return True
      End If
    End If
  End If
  Return False
End Function

Function JJ2Date(JJ As Double) As String
  JJ = JJ + 0.5
  Dim Z As Integer = Floor(JJ)
  Dim F As Double = JJ - Z
  Dim A, B, C, D, E As Integer
  Dim alpha As Integer
  
  If Z < 2299161 Then
    A = Z
  Else
    alpha = Floor((Z - 1867216.25) / 36524.25)
    A = Z + 1 + alpha - Floor(alpha / 4)
  End If
  
  B = A + 1524
  C = Floor((B - 122.1) / 365.25)
  D = Floor(365.25 * C)
  E = Floor((B - D) / 30.6001)
  
  Dim JD As Double = B - D - Floor(30.6001 * E) + F
  Dim J As Integer = Floor(JD)
  Dim M As Integer
  If E < 13.5 Then
    M = E - 1
  Else
    M = E - 13
  End If
  
  Dim Y As Integer
  If M > 2 Then
    Y = C - 4716
  Else
    Y = C - 4715
  End If
  
  Return Format(J, "00") + "/" + Format(M, "00") + "/" + Str(Y)
End Function

Function CalculPhasesLune(k As Double) As String
  Dim T As Double = k / 1236.85
  Dim JJ As Double = 2415020.75933 + 29.53058868 * k + 0.0001178 * T * T
- 0.000000155 * T * T * T
  
  Dim M As Double = 359.2242 + 29.10535608 * k - 0.0000333 * T * T -
0.00000347 * T * T * T
  Dim MP As Double = 306.0253 + 385.81691806 * k + 0.0107306 * T * T +
0.00001236 * T * T * T
  Dim F As Double = 21.2964 + 390.67050646 * k - 0.0016528 * T * T -
0.00000239 * T * T * T
  
  Dim kp As Integer = Round((k - Floor(k)) * 100)
  
  If kp = 0 Or kp = 50 Then
    JJ = JJ - 0.4068 * Sin(Radians(MP))
  Else
    JJ = JJ - 0.6280 * Sin(Radians(MP))
    If kp = 25 Then
      JJ = JJ + 0.0028 - 0.0004 * Cos(Radians(M)) + 0.0003 *
Cos(Radians(MP))
    Else
      JJ = JJ + 0.0028 + 0.0004 * Cos(Radians(M)) - 0.0003 *
Cos(Radians(MP))
    End If
  End If
  
  Return JJ2Date(JJ)
End Function

Function PhasesLune(D As String, n As Integer) As String()
  Dim k As Double = (Val(D.Right(4)) - 1900) * 12.3685
  Dim phaseDates() As String
  Dim p As Integer = 0
  Dim d As String = CalculPhasesLune(k)
  
  While Not PostDate(D, d)
    k = k + 0.25
    p = (p + 1) Mod 4
    d = CalculPhasesLune(k)
  Wend
  
  phaseDates.Append(d)
  
  For i As Integer = 1 To n - 1
    k = k + 0.25
    p = (p + 1) Mod 4
    d = CalculPhasesLune(k)
    phaseDates.Append(d)
  Next
  
  Return phaseDates
End Function

suivi programmation

-- 
  \ /    Croire c'est le contraire de savoir,
-- o --  si j'y crois, je ne sais pas,
  / \    si je sais, pas la peine d'y croire.
--> Je crois pas, car je sais que c'est faux malgré tout...

"Les grands esprits discutent des idées ; les esprits moyens discutent
des événements ; les petits esprits discutent des gens." (Eleanor Roosevelt)

Ma Fiche Mon Site Voyance (MSV) : <https://miniurl.be/r-5lsx>

Mes Applications : <https://sites.google.com/view/soft-meta-science/accueil>

Dossier DropBox pour voir des documents : <https://urlz.fr/rK5L>

Le Troll(19) : <https://miniurl.be/r-5rzl>

Comme le forgerons qui bat le fer pour obtenir une Épée, j'obtient
toujours un résultat final, même si ça met des années, je sais que ce que
je fait ce n'est pas pour rien./ (C)

Loi 636 :

Il est mal que le mal fasse du mal au bien.
Il est bien que le mal fasse du mal au mal.
Il est bien que le bien fasse du bien au bien.
Il est bien que le mal fasse du bien au bien.
Il est mal que le mal fasse du bien au mal.
Il est mal que le bien fasse du bien au mal.

Il est bien que le mal s’entre-tue.

Back to fr.comp.sys.mac.programmation | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Mises à Jours : Soft Méta-Science Prime Alexis <prime-alexis@meta-science.fr> - 2025-03-03 22:04 +0000
  Re: Mises à Jours : Soft Méta-Science Prime Alexis <prime-alexis@meta-science.fr> - 2025-03-04 11:54 +0000
    Re: Mises à Jours : Soft Méta-Science DuboisP <patrickr.dubois.don't.spam@free.fr.invalid> - 2025-03-04 15:54 +0100
  Calculer les dates de Pleine Lune (Re: Mises à Jours : Soft Méta-Science) Prime Alexis <prime-alexis@meta-science.fr> - 2025-03-04 19:48 +0000
    Re: Calculer les dates de Pleine Lune (Re: Mises à Jours : Soft Méta-Science) Eric H <prime-alexis@meta-science.fr> - 2025-03-14 13:57 +0000
      Re: Calculer les dates de Pleine Lune (Re: Mises à Jours : Soft Méta-Science) Eric H <prime-alexis@meta-science.fr> - 2025-03-14 14:06 +0000
        Re: Calculer les dates de Pleine Lune (Re: Mises à Jours : Soft Méta-Science) Eric H <prime-alexis@meta-science.fr> - 2025-03-14 14:46 +0000
  Re: Mises à Jours : Soft Méta-Science Laika <laika@not-for-mail.invalid> - 2025-03-09 21:53 +0100

csiph-web