Convertisseur de secondes

Soyez le premier à donner votre avis sur cette source.

Vue 16 347 fois - Téléchargée 538 fois

Description

Un petit programme qui convertit un nombre entier de secondes, fourni au départ, en un nombre d'années, de mois, de jours, d'heures, de minutes et de secondes.
(Réponse proposée à l'exercice 4.6. page 41 de l'ouvrage de Gérard Swinnen: Apprendre à programmer avec Python.)

Source / Exemple :


#Second_convert
# -*- coding: utf-8 -*-
#Python version 3.0
#Auteur: pyROM 29 dec 2008
#Licence: Copyleft
#Description: un petit programme qui convertit un nombre entier de secondes fourni au départ,
#en un nombre d'années, de mois, de jours, d'heures, de minutes et de secondes
print("Convertisseur de secondes")  
print(" ")
an,mois,jour,heure,minute,seconde=0,0,0,0,0,0 #définition des variables par défaut 
ordre = "ok" #valeur par défaut de 'ordre'
while (ordre != "n"): #continuer l'exécution en boucle si on tape autre chose que 'n' (voir ligne 43)
	i=float(input("Entrez un nombre entier de secondes: ")) #saisit le nombre de secondes
	n=int(i) #convertit le nombre saisi en entier
	if(n>=60):
		minute=n//60 #calcule le nombre de minutes par division entière
		seconde=n%60 #calcule le nombre de secondes (le reste de la division entière)	
		if(minute>=60):
			heure=minute//60 #calcule le nombre d'heures
			minute=minute%60 #retourne le reste en minutes
			if(heure>=24):
				jour=heure//24 #calcule le nombre de jours
				heure=heure%24 #retourne le reste en heures
				if(jour>=30):
					mois=jour//30 #calcule le nombre de mois
					jour=jour%30 #retourne le reste en jours
					if(mois>=12):
						an=mois//12 #calcule le nombre d'années
						mois=mois%12 #retourne le reste en mois
					else:
						an=0 #retourne 0 année si nombre de mois <12
				else:
					mois=0 #retourne 0 mois si nombre de jours <30
			else:
				jour=0 #retourne 0 jour si nombre d'heures <24
		else:
			heure=0 #retourne 0 heure si nombre de minutes <60
	else:
		minute=0 #retourne 0 minute si nombre de secondes <60
		seconde=n #retourne le nombre de secondes
	print(an," année(s), ",mois," mois, ",jour," jour(s), ",heure," heure(s), ",minute," minute(s) et ",seconde," seconde(s).")
	an,mois,jour,heure,minute,seconde=0,0,0,0,0,0 #remise à zéro
	ordre = input("voulez-vous continuer ? n/o ") #demande si l'on souhaite quitter	
print("Merci")

Conclusion :


C'est mon premier script en Python (un language que je suis encore en train de découvrir). J'espère qu'il n'est pas trop compliqué.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

### conversion
h=0
mn=0
j=0
m=0
a=0
print("donner la valeur en seconde à convertir")
seconde = input()
s =int(seconde)
if (s>=60):
mn=s//60
s=s%60
if (mn>=60):
h=mn//60
mn=mn%60
if (h>=24):
j=h//24
h=h%24
if(j>=30):
m=j//30
j=j%30
if (m>=12):
a=m//12
m=m%12

print ( " la conversion donne ",s,"secondes",mn,"mininutes",h," heure",j,"jour",m,"mois",a,"annees")
Merci bien! moi aussi je suis à ce niveau, mais ça me surprend que tu utilise certaines notions qui sont encore dans les chapitres suivant;
Messages postés
1
Date d'inscription
jeudi 1 mars 2007
Statut
Membre
Dernière intervention
5 février 2012

Salut, je suis aussi tombé sur cet exercice.
Voilà ce que je propose :

print ("Ce programme convertit un nombre de secondes données en\nun nombre d'années, de mois, de jours, d'heures, de minutes, et de secondes\n")
a = input ("Entrez un nombre de secondes : ")
a = int (a)
b = (a%31536000)
c = (b%2628000)
d = (c%86400)
e = (d%3600)
print ("\nCelà correspond à", a//31536000, "année(s),",b//2628000, "mois,", c//86400, "jour(s),", d//3600, "heure(s),", e//60, "minute(s) et", e%60, "seconde(s)")

Une autre manière de faire ;)
Messages postés
1
Date d'inscription
lundi 29 décembre 2008
Statut
Membre
Dernière intervention
2 janvier 2009

Bonjour,
c'est vraiment plus simple et élégant avec la notion de liste.
Merci et bon courage.
Messages postés
2
Date d'inscription
dimanche 13 juillet 2008
Statut
Membre
Dernière intervention
1 janvier 2009

Salut,

en plus court:

#! /usr/bin/env python
# -*- coding:utf-8 -*-
#prog servant à definir le nbr d'annees, mois, jours,...
#à partir d'un nbr de secondes donné
a=raw_input("entrer le nbr de secondes:")
i=b=c=0
temp=["années","mois","jours","heures","minutes","secondes"]
dure=["31536000","2628000","86400","3600","60","1"]
while (i<6):
c=float(a)/float(dure[i])
print int(c), temp[i]
b=int(a)%int(dure[i])
a=b
i=i+1

exit=raw_input("taper sur une touche pour sortir")

j'en suit moi aussi a ce niveau du bouquin.
bonne continuation.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.