1. Encavallament de tasques (3 punts)

Volem saber si dues tasques diàries s’encavallen, és a dir, si coincideixen totalment o parcialment en el temps. De cada tasca se’n coneix l’hora d’inici i de final. Si la primera tasca està programada entre les hores t1_ini i t1_fi i la segona tasca entre les hores t2_ini i t2_fi, l’interval d’encavallament es pot obtenir fàcilment mitjançant els càlculs següents:

t_ini = max(t1_ini, t2_ini)

t_fi = min(t1_fi, t2_fi)

Llavors, si t_ini és anterior a t_fi, ja tenim l’interval d’encavallament. En cas contrari, vol dir que les dues tasques no coincideixen en el temps.

Es demana que implementeu la funció especificada a continuació i la deseu al fitxer tasques2.py:

tasques2.encavallament(t1_ini, t1_fi, t2_ini, t2_fi)
Paràmetres:
Retorna:

Durada de l’interval d’encavallament de les dues tasques. En cas que no s’encavallin, cal retornar un interval de 0 segons.

Tipus de retorn:

datetime.timedelta

Per exemple:


>>> from tasques2 import encavallament
>>> from datetime import time

>>> encavallament(time(10, 00), time(12, 00), time(11, 00), time(14, 00))
datetime.timedelta(seconds=3600)
>>> encavallament(time(10, 00), time(12, 30), time(17, 45), time(20, 00))
datetime.timedelta(0)

Disposeu d’un joc de proves més complet al fitxer tests-tasques2.txt.