Les durées - Soustraction de deux durées
Les durées peuvent être exprimées en secondes, en minutes-secondes, ou en heures-minutes-secondes.
Ainsi, une durée de 23 652 secondes peut aussi être exprimée par :
secondes = 23652
minutes_secondes = (394, 12)
heures_minutes_secondes = (6, 34, 12)
On souhaite créer une fonction permettant de soustraire deux durées, exprimée en heures, minutes et secondes.
Il est à noter que la durée à soustraire doit être inférieure à la durée initiale.
Les deux questions sont indépendantes.
Fonctions fournies
Pour l'ensemble de l'exercice, les deux fonctions suivantes sont chargées en mémoire :
- la fonction
convertir_en_h_min_secqui prend en paramètre une durée exprimée en secondes et qui renvoie la durée exprimée en heures, minutes et secondes,
Exemple
>>> convertir_en_h_min_sec(23652)
(6, 34, 12)
>>> convertir_en_h_min_sec(0)
(0, 0, 0)
- la fonction
convertir_en_secondesqui prend en paramètreduree(un tuple de trois entiers représentant la durée en heures-minutes-secondes) et renvoie le nombre total de secondes.
Exemple
>>> duree_a_convertir = (1, 25, 50)
>>> convertir_en_secondes(duree_a_convertir)
5150
>>> convertir_en_secondes((6, 34, 12))
23652
1. Fonction est_plus_petite
Écrire la fonction est_plus_petite qui prend en paramètre deux durées duree_1 et duree_2 exprimées en heures, minutes et secondes et renvoie True si duree_1 est plus grande que duree_2, et False sinon.
Exemple
>>> est_plus_grande((1, 12, 30), (2, 5, 4))
False
>>> est_plus_grande((3, 12, 30), (2, 5, 4))
True
2. Test de la fontion
Écrire la fonction soustraire_durees qui prend en paramètre deux durées duree_1 et duree_2 exprimées en heures, minutes et secondes et renvoie la différence entre les deux durées, exprimée en heures, minutes et secondes.
On ajoutera une assertion pour vérifier que la durée à soustraire est bien inférieure à la durée initiale
Exemple
>>> soustraire_durees((3, 12, 30), (2, 5, 4))
(1, 7, 26)
# Tests (insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)