A forma como medimos o tempo é um bocado confusa. Um minuto tem 60 segundos e uma hora tem 60 minutos. Isto vem da antiga Babilónia, onde o 60 era a base do sistema de numeração. Um dia tem 24 horas, uma semana tem 7 dias, e quantos dias tem um mês? Bom, o número de dias de um mês depende não só do mês em questão, mas também do tipo de calendário usado no país onde vives.
E se, em vez disso, usássemos apenas segundos para expressar intervalos de tempo? Assim, podemos usar os prefixos do sistema métrico para escrever grandes números de segundos em quantidades mais fáceis de compreender.
Se algum dia colonizarmos Marte ou outro planeta qualquer, medir o tempo vai ficar ainda mais confuso. Quando alguém diz «ano», está a referir-se a um ano na Terra ou a um ano em Marte?
A ideia para este exercício veio do romance de ficção científica "A Deepness in the Sky", do autor Vernor Vinge. Nele, o autor usa o sistema métrico como base para medir o tempo.
A tua tarefa é determinar a data e a hora um gigassegundo depois de uma determinada data.
Um gigassegundo é mil milhões de segundos. Ou seja, é o número um seguido de nove zeros.
Se tivesses nascido a 24 de janeiro de 2015, às 22:00 (10:00:00 da noite), a 2 de outubro de 2046, às 23:46:40 (11:46:40 da noite), terias um gigassegundo de idade.
O pacote Kernel-Chronology tem muitas classes e protocolos úteis relacionados com datas e horas. A classe Date and Time tem métodos de impressão úteis que podes usar para criar a tua própria representação de data e hora ISO8601.
Inscreve-te no Exercism para aprenderes e dominares Pharo com 50 exercícios, e mentoria humana real, tudo grátis.