Bonjour,
Voilà un exemple récent. Merci beaucoup de tenter de voir ce qu'il se passe.
J'ai la notice logiciel élève en français donc pas de problème de compréhension.
Je pense, comme l'indique le mode d'emploi, pouvoir écrire également un programme sur le PC (dans le logiciel) et le transférer dans
mon ordipoche. Pas de problème avec mes Primes, mais là....
Je dois avoir "loupé" quelque chose en effet.
Je commence à bien me mettre à python et j'avance bien dans mes transpositions "fonctions calendaires".
Bon weekend et bonnes Pâques.
Gérard GAUNY.
- Code: Select all
# Essai de codage d'un menu.
# Largement et librement adapté des écrits de Mss cent20, Bisam et Adriweb.
# Constantes :
TEXTE = ("Fonctions calendaires :")
P, I, = print, input
def menu():
P(TEXTE)
P("1. Date vers JDN")
P("2. JDN vers date")
P("3. JDS, jour de la semaine")
P("4. Menu")
P("0. Sortie du programme")
C = int(input("Veuillez entrer votre choix avec 1, 2, 3, 4 ou 0 : => "))
if C==0:
P("Fin")
elif C==1:
d2j(n)
elif C==2:
print("vous avez opté pour la fonction j2d(jdn) : tapez j2d(jdn) : => ")
elif C==3:
JDS()
elif C==4:
menu()
# Date calendaire d'un JDN donné.
# Validité du 01/01/-4712 au 31/12/9999.
# jdn signifie Julian Day Number en anglais soit : Numéro du jour Julien.
from math import *
def j2d(jdn):
z=an=a=b=c=E=0
d=j=m=an=s=0
R=1
if jdn<0 or jdn>5373484:
raise Exception("jdn indéfini car hors limites de validité")
#print("jdn indéfini car hors limites de validité")
z=int(jdn)
a=int((z-1867216.25)/36524.25)
an=z+1+a-int(a/4)
if z<2299161:
an=z
b=an+1524; c=int((b-122.1)/365.25);
d= int(365.25*c); E=int((b-d)/30.6001);
j=b-d-int(30.6001*E)
if E<14:
m=E-1
if E==14 or E==15:
m=E-13
if m<3:
an=c-4715
if m>2:
an=c-4716
if an<0:
R=-1
s=R*(fabs(j)+ fabs(m/100)+ fabs(an/1000000))
s=round(s,7)
print(s)