Control horari ============== Una fàbrica utilitza un sistema de marcatge horari que controla l'hora d'entrada i de sortida dels empleats, quedant enregistrades les dades diàriament en un fitxer. Cada entrada o sortida d'un empleat resulta en una línia del fitxer amb les dades del NIF, nom i cognoms, l'hora d'entrada o sortida (amb el format HH:MM) i un caràcter que indica si l'empleat ha entrat a o sortit de treballar (``'E'`` o ``'S'``). En cada línia, les dades estan separades per ``', '`` (coma-espai) i les línies estan ordenades temporalment. El fitxer conté dues primeres línies inicials que descriuen els camps. Per exemple: .. literalinclude:: exemples/entradasortida.txt :language: text :lines: 1-7 Pots descarregar-te el fitxer exemple sencer :download:`entradasortida.txt` Desa les següents funcions al fitxer ``control.py``. #. Dissenya la funció :py:func:`suma_temps` que donats 4 enters corresponents a les hores i minuts d'un primer temps i les hores i minuts d'un segon temps, retorna dos enters corresponents a les hores i minuts del temps suma dels dos donats. Exemples: .. literalinclude:: suma_temps.txt :language: python3 :lines: 3- .. note:: Podeu descarregar el fitxer amb tests :download:`suma_temps.txt` #. Dissenya la funció :py:func:`resta_temps` que donats 4 enters corresponents a les hores i minuts d'un primer temps i les hores i minuts d'un segon temps, retorna dos enters corresponents a les hores i minuts de la diferència entre el primer temps i el segon. Exemples: .. literalinclude:: resta_temps.txt :language: python3 :lines: 3- .. note:: Podeu descarregar el fitxer amb tests :download:`resta_temps.txt` #. Dissenyeu la funció :py:func:`control_1` que, donat el nom d'un fitxer que conté dades en el format descrit i el NIF d'un treballador de l'empresa, calculi et temps que aquest ha estat treballant. La funció ha de retornar dos enters corresponents a les hores i els minuts. Aquesta funció ha d'usar les dues anteriors. Un treballador pot haver entrat i sortit més d'un cop. Exemples: .. literalinclude:: control_1.txt :language: python3 :lines: 3- .. note:: Podeu descarregar el fitxer amb tests :download:`control_1.txt` #. Dissenyeu la funció :py:func:`control_2` que, donat el nom d'un fitxer que conté dades en el format descrit i el NIF del director de la fàbrica, retorni ``True`` si, i només si, el director ha estat el darrer d'entrar a treballar. Si el director aquell dia no ha treballat, la funció també ha de retornar ``True``. Amb les dades de l'exemple, si la directora és la Maria Sans, la funció ha de retornar ``True``; en canvi, si el director és qualsevol dels altres quatre empleats, la funció ha de retornar ``False``. Suggeriment: construiu primer un diccionari on la clau sigui el NIF i el valor el primer temps en què el treballador ha entrat a treballar. Exemples: .. literalinclude:: control_2.txt :language: python3 :lines: 3- .. note:: Podeu descarregar el fitxer amb tests :download:`control_2.txt` .. rubric:: Solucions Disposeu de solucions al fitxer :download:`control.py `