Exercice 5

Chaque jour, le soleil se lève et se couche à des horaires précis qui dépendent de l'endroit où on se situe. Par exemple, le 21 juin prochain, jour du solstice d'été, le soleil se lèvera à Nancy à 05h29 et se couchera à 21h42. Ce sera le jour le plus long de l'année.

On se propose d'écrire des classes python permettant de définir et de manipuler des jours définis selon leurs horaires respectifs de lever et de coucher du soleil. Par exemple, dans cet exercice, vous définirez deux classes: une classe Horaire permettant de manipuler des temps caractérisés par des heures et des minutes (par ex.: 05h29, 21h42, etc.) et une classe Jour permettant de définir un jour de l'année à partir de deux horaires, un horaire de lever et un horaire de coucher du soleil.

Ainsi, un script principal utilisant ces deux classes pourrait être:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python

from Temps import Horaire, Jour

t1 = Horaire()
t1.heure = 5
t1.minute = 29
print "Horaire t1 = %r" % (t1)

t2 = Horaire(21, 42)
print "Horaire t2 = %r" % (t2)

t3 = Horaire(minute=192)
print "Horaire t3 = %r" % (t3)

t4 = t2-t1
print "Horaire t4 = %r" % (t4)

print "Soit en minutes: %d" % (t4.enMinutes)
print

vingEtUnJuin = Jour(t1, t2)
print "21 Juin: %r" % (vingEtUnJuin)
print "duree du jour: %r" % (vingEtUnJuin.dureeJour)
print "duree de la nuit: %r" % (vingEtUnJuin.dureeNuit)

Ce qui donnerait le résultat suivant:

Horaire t1 =  5h29
Horaire t2 = 21h42
Horaire t3 =  3h12
Horaire t4 = 16h13
Soit en minutes: 973

21 Juin: le soleil se leve a  5h29 et se couche a 21h42
duree du jour: 16h13
duree de la nuit:  7h47

Ecrire les classes Horaire et Jour afin d'obtenir un programme complet donnant, à l'exécution, le résultat affiché ci-dessus.