O guardião do tempo


Este exercício é sobretudo sobre durações de tempo, mas também pode servir para um exercício geral sobre horas.

História

A Sarah é cronometrista. Na verdade, é a melhor que há. Quando as crianças lhe perguntam o que faz um cronometrista, adora mostrar-lhes um frasco cheio de areia branca. Vês, diz ela: "Estou a manter o tempo em segurança!"

O trabalho dela não é assim tão romântico, mas continua a ser muito interessante e gratificante para ela. Viaja para provas desportivas por todo o mundo com a mala cheia de equipamento de cronometragem e mede os tempos de todos os atletas.

Neste exercício vais escrever algumas funções para o novo software de cronometragem que a Sarah te pediu para criares para ela. Não pode haver erros, senão o próximo recorde mundial pode não ser válido se for encontrado um bug no software mais tarde! Estás pronto para assumir essa responsabilidade?

Notas

Os dados que vêm do hardware de cronometragem são normalmente uma marca temporal (hora, datetime ou até mesmo com fuso horário). Têm uma precisão elevada, geralmente até 1 milissegundo e, por vezes, até 100 microssegundos. Cada dispositivo de hardware tem um relógio interno que tem de estar sincronizado com todos os outros dispositivos.

Tarefas

Estas são tarefas de exemplo que se adequam ao exercício do cronometrista:

  • Calcula a diferença entre a hora de partida e a hora de chegada para obteres a duração.
  • Um dos dispositivos de cronometragem está noutro fuso horário. Calcula a diferença entre dois tempos com fusos horários diferentes.
  • Um dos dispositivos de cronometragem não tem ligação à Internet. Para os primeiros 10 corredores, um ajudante lê-te os tempos registados ao telefone. São introduzidos no formato "10h5m19.234s", que é preciso analisar.
  • A partida antecipada foi registada pela câmara de vídeo de reserva. Recalcula a nova hora de partida subtraindo uma determinada duração à hora de partida incorreta.
  • Durante uma prova, são detetados muitos tempos dispersos. Para poder ignorar todos esses tempos "indesejados", o cronometrista só pode aceitar tempos de um dispositivo de cronometragem dentro de um determinado intervalo de tempo após a partida. Por exemplo, entre 10min e 30min após a partida. Constrói uma função de filtro com os parâmetros de entrada start time (marca temporal), from e to (durações), e detection (marca temporal).
  • Formata a duração na tabela de classificações no formato "1h5m19.234s +4.843", em que +4.843 é a diferença para o líder (o atleta na primeira posição).

Implementações

  • Ainda nenhuma

Relacionado