2. Horari del Descans (3 punts)

Considerem una activitat docent de la nostra escola, l’ETSEIB (que a partir d’ara anomenarem AD). Ens interessa saber els temps d’inici i fi del descans que es vol fer a meitat de l”AD. Es demana que al mòdul horaris (fitxer horaris.py, facis la funció especificada a continuació:

horaris.horari_descans(ti, tf, dia, dd)
Paràmetres:
  • ti,tf – el temps d’inici i de fi d’una AD, representats com a instàncies de la classe time del mòdul datetime.

  • dia – la data de l”AD, representada com a instància de la classe date del mòdul datetime.

  • dd – la durada del descans, representat com a instància de la classe timedelta del mòdul datetime.

Retorna:

Tres valors, un bool i dues instàncies de la classe datetime del mòdul datetime tals que: si el descans és OK (o sigui és superior a 0 i inferior a la durada de l”AD) aleshores retorna True i l’inici i fi del descans, altrament retorna False i l’inici i fi de la AD.

Per exemple:


>>> ti, tf, dia = time(10,5,0), time(12,0,0), date(2024, 3, 11)

>>> horari_descans(ti, tf, dia,  timedelta(minutes=10))
(True, datetime.datetime(2024, 3, 11, 10, 57, 30), datetime.datetime(2024, 3, 11, 11, 7, 30))

>>> horari_descans(ti, tf, dia, timedelta(minutes=120))
(False, datetime.datetime(2024, 3, 11, 10, 5), datetime.datetime(2024, 3, 11, 12, 0))

>>> horari_descans(ti, tf, dia, timedelta(0))
(False, datetime.datetime(2024, 3, 11, 10, 5), datetime.datetime(2024, 3, 11, 12, 0))

Disposes d’un joc de proves més complet al fitxer horari_descans-test.txt.

Nota

Per a resoldre aquest problema es recomana utilitzar el mètode combine() de la classe datetime.