時間の測り方というのは、なんだかごちゃごちゃしています。 1分は60秒、1時間は60分ですね。 これは古代バビロニアに由来し、そこでは数の体系の基準として60が使われていました。 1日は24時間、1週間は7日ですが、1か月は何日でしょうか? 実は、1か月の日数は何月かによってだけでなく、住んでいる国でどの種類の暦が使われているかによっても変わります。
では、時間の間隔を表すのに秒だけを使うとしたらどうでしょう? そうすれば、大きな秒数をよりわかりやすい量で書くために、メートル法の接頭辞を使えます。
将来、火星かどこか別の惑星に移住することになったら、時間の測定はさらにごちゃごちゃするでしょう。 誰かが「年」と言ったとき、それは地球の1年を指すのか、それとも火星の1年なのでしょうか?
この演習のアイデアは、作家Vernor VingeのSF小説"A Deepness in the Sky"から生まれました。 その中で著者は、時間の測定の基準としてメートル法を使っています。
ある日時から1ギガ秒後の日時を求めるのが、この演習の課題です。
1ギガ秒は10億秒です。 つまり、1のあとに0が9つ続く数です。
もし、_2015年1月24日の22時_に生まれたなら、1ギガ秒を迎えるのは_2046年10月2日の23時46分40秒_です。
Kernel-Chronologyパッケージには、日付や時刻に関する便利なクラスやプロトコルが数多く用意されています。DateクラスとTimeクラスには便利な出力用メソッドがあり、これを使って、自分だけのISO8601形式の日付と時刻の表現を作成できます。