この演習は主に時間の長さを扱いますが、時刻全般を扱う演習としても使えます。
サラはタイムキーパーです。実は、右に出る者はいないほど優秀です。子どもたちにタイムキーパーの仕事は何かと聞かれると、白い砂でいっぱいの瓶を見せるのが大好きです。「ほらね」と彼女は言います。「私は時間を守っているんです!」
実際の仕事はそれほどロマンチックではありませんが、それでも彼女にとってとても面白く、やりがいのある仕事です。計測機器でいっぱいのバッグを携えて世界中のスポーツイベントへ飛び回り、すべての選手のタイムを計測します。
この演習では、サラに頼まれて作る新しい計測ソフトウェアのために、いくつかの関数を書きます。間違いは許されません。もし後からソフトウェアのバグが見つかれば、次の世界記録が無効になってしまうかもしれません。その責任を負う覚悟はできていますか?
計測ハードウェアから送られてくるデータは、通常タイムスタンプ(時刻、日時、あるいはタイムゾーン付きの場合もあります)です。その精度は非常に高く、通常は1ミリ秒、時には100マイクロ秒にまで及びます。各ハードウェアデバイスには内部クロックがあり、それを他のすべてのデバイスと同期させる必要があります。
タイムキーパーの演習に合うタスクの例を挙げます。
start time(タイムスタンプ)、fromとto(時間の長さ)、detection(タイムスタンプ)を入力とするフィルター関数を作ります。+4.843は、先頭(1位の選手)との差です。