Ex 4.6

De TravauxIndse

Énoncé de l'exercice :

Écrivez un programme qui convertit un nombre entier de secondes fourni au départ en un nombre d’années, de mois, de jours, de minutes et de secondes (utilisez l’opérateur modulo : %).

Solutions de cet exercices :

  • Solution de Cyril Dewez :
nbsec=int(input("Entrez un nombre de secondes et vous verez ...   "))
nbans=nbsec//31104000 #le chiffre c'est le nombre de seconde dans un an
resteans=nbsec%31104000
print(nbans, end=(" Année(s), "))
nbmois=resteans//2592000
restemois=resteans%2592000
print(nbmois, end=(" Mois, "))
nbjour=restemois//86400
restejour=restemois%86400
print(nbjour, end=(" Jour(s), "))
nbheure=restejour//3600
resteheure=restejour%3600
print(nbheure, end=(" Heure(s), "))
nbminute=resteheure//60
resteminute=resteheure%60
print(nbminute, end=(" Minute(s), "))
print(resteminute, end=(" Seconde(s)."))
  • Solution de Gérard Swinnen :
# Le nombre de secondes est fourni au départ : 
# (un grand nombre s'impose !) 
nsd = 12345678912 
# Nombre de secondes dans une journée : 
nspj = 3600 * 24 
# Nombre de secondes dans un an (soit 365 jours - 
# on ne tiendra pas compte des années bissextiles) : 
nspa = nspj * 365 
# Nombre de secondes dans un mois (en admettant 
# pour chaque mois une durée identique de 30 jours) : 
nspm = nspj * 30 
# Nombre d'années contenues dans la durée fournie : 
na = nsd // nspa        # division <entière> 
nsr = nsd % nspa        # n. de sec. restantes 
# Nombre de mois restants : 
nmo = nsr // nspm       # division <entière> 
nsr = nsr % nspm        # n. de sec. restantes 
# Nombre de jours restants : 
nj = nsr // nspj        # division <entière> 
nsr = nsr % nspj        # n. de sec. restantes 
# Nombre d'heures restantes : 
nh = nsr // 3600        # division <entière> 
nsr = nsr % 3600        # n. de sec. restantes 
# Nombre de minutes restantes : 
nmi = nsr // 60         # division <entière> 
nsr = nsr % 60          # n. de sec. restantes 
print("Nombre de secondes à convertir :", nsd) 
print("Cette durée correspond à", na, "années de 365 jours, plus") 
print(nmo, "mois de 30 jours,", end=' ') 
print(nj, "jours,", end=' ') 
print(nh, "heures,", end=' ') 
print(nmi, "minutes et", end=' ') 
print(nsr, "secondes.")