Хранитель часу


Ця вправа здебільшого про часові тривалості, але її можна використати і як загальну вправу про час.

Історія

Сара - хронометристка. Насправді вона найкраща в цій справі. Коли діти питають, чим займається хронометристка, вона охоче показує їм банку, повну білого піску. Ось, каже вона: «Я бережу час!»

Її справжня робота не така вже й романтична, але для неї вона однаково дуже цікава й приносить задоволення. Вона літає на спортивні змагання по всьому світу із сумкою, повною обладнання для хронометражу, та вимірює час кожного спортсмена.

У цій вправі ми напишемо кілька функцій для нового програмного забезпечення для хронометражу, яке Сара попросила нас створити. Помилок бути не може, інакше наступний світовий рекорд можуть визнати недійсним, якщо згодом у програмному забезпеченні знайдуть bug! Чи готові ми взяти на себе цю відповідальність?

Примітки

Дані, що надходять від обладнання для хронометражу, зазвичай є міткою часу (час, дата й час, а часом навіть із часовим поясом). Точність у них висока, зазвичай до 1 мілісекунди, а іноді навіть до 100 мікросекунд. Кожен апаратний пристрій має внутрішній годинник, який потрібно синхронізувати з усіма іншими пристроями.

Завдання

Ось приклади завдань, які підходять для вправи «Хронометрист»:

  • Взяти різницю між часом старту та часом фінішу, щоб отримати тривалість.
  • Один пристрій хронометражу перебуває в іншому часовому поясі. Обчислити різницю між двома часами з різними часовими поясами.
  • Один пристрій хронометражу не має підключення до інтернету. Для перших 10 бігунів помічник зачитує нам записані часи по телефону. Їх вводять у форматі «10h5m19.234s», який потрібно розібрати.
  • Ранній старт записала запасна відеокамера. Перерахувати новий час старту, віднявши задану тривалість від неправильного часу старту.
  • Під час змагань виявляється багато випадкових вимірів часу. Щоб мати змогу ігнорувати всі ці «небажані» часи, хронометристка може приймати часи від пристрою хронометражу лише в певному проміжку після старту. Наприклад, від 10 хв до 30 хв після старту. Побудувати функцію фільтрації з вхідними даними start time (мітка часу), from і to (тривалості), detection (мітка часу).
  • Відформатувати тривалість на табло лідерів у форматі «1h5m19.234s +4.843», де +4.843 - це різниця з лідером (спортсменом на першій позиції).

Реалізації

  • Поки що немає

Повʼязане