El guardián del tiempo


Este ejercicio trata principalmente sobre duraciones de tiempo, pero podría usarse para un ejercicio general sobre tiempos.

Historia

Sarah es cronometradora. En realidad, es la mejor que existe. Cuando los niños le preguntan qué hace un cronometrador, le encanta mostrarles un frasco lleno de arena blanca. Fíjate, dice: «¡Estoy manteniendo el tiempo a salvo!».

Su trabajo real no es tan romántico, pero aun así le resulta muy interesante y gratificante. Vuela a eventos deportivos por todo el mundo con su bolsa llena de equipos de cronometraje y mide los tiempos de cada atleta.

En este ejercicio escribirás algunas funciones para el nuevo software de cronometraje que Sarah te pidió crear. No puede haber ningún error, ¡o el próximo récord mundial podría quedar invalidado si después se encuentra un bug en el software! ¿Estás listo para asumir la responsabilidad?

Notas

Los datos que llegan del hardware de cronometraje suelen ser una marca de tiempo (hora, fecha y hora, o incluso con zona horaria). Tienen una alta precisión, normalmente de hasta 1 milisegundo y a veces incluso de 100 microsegundos. Cada dispositivo de hardware tiene un reloj interno que debe sincronizarse con todos los demás dispositivos.

Tareas

Estas son tareas de ejemplo que encajan con el ejercicio del cronometrador:

  • Calcula la diferencia entre la hora de inicio y la de finalización para obtener la duración.
  • Un dispositivo de cronometraje está en otra zona horaria. Calcula la diferencia entre 2 tiempos con zonas horarias distintas.
  • Un dispositivo de cronometraje no tiene conexión a internet. Para los primeros 10 corredores, un ayudante te lee por teléfono los tiempos registrados. Se ingresan usando el formato «10h5m19.234s», que hay que analizar.
  • La cámara de video de respaldo registró un inicio anticipado. Vuelve a calcular la nueva hora de inicio restándole una duración dada a la hora de inicio incorrecta.
  • Durante un evento se detectan muchos tiempos sueltos. Para poder ignorar todos esos tiempos «no deseados», el cronometrador puede permitir tiempos de un dispositivo de cronometraje solo dentro de un cierto intervalo después del inicio. Por ejemplo, entre 10 min y 30 min después del inicio. Crea una función de filtro con los argumentos start time (marca de tiempo), from y to (duraciones), detection (marca de tiempo).
  • Formatea la salida de una duración en la tabla de clasificación con el formato «1h5m19.234s +4.843», donde +4.843 es la diferencia con el líder (el atleta en primera posición).

Implementaciones

  • Ninguna todavía

Relacionado