A forma como medimos o tempo é meio bagunçada. Temos 60 segundos em um minuto e 60 minutos em uma hora. Isso vem da antiga Babilônia, onde o 60 era a base do sistema numérico deles. Temos 24 horas em um dia, 7 dias em uma semana, e quantos dias em um mês? Bem, a quantidade de dias em um mês depende não só de qual mês é, mas também do tipo de calendário usado no país em que você vive.
E se, em vez disso, usássemos apenas segundos para expressar intervalos de tempo? Aí podemos usar os prefixos do sistema métrico para escrever grandes quantidades de segundos em valores mais fáceis de compreender.
Se algum dia colonizarmos Marte ou algum outro planeta, medir o tempo vai ficar ainda mais bagunçado. Quando alguém diz "ano", está falando de um ano na Terra ou de um ano em Marte?
A ideia deste 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.
Sua tarefa é determinar a data e a hora um gigassegundo depois de uma certa data.
Um gigassegundo é um bilhão de segundos. Ou seja, um 1 seguido de nove zeros.
Se você nasceu em 24 de janeiro de 2015 às 22:00 (10:00:00pm), você completaria um gigassegundo de vida em 2 de outubro de 2046 às 23:46:40 (11:46:40pm).
A entrada e a saída da função gigasecond são do tipo Date.
É possível retornar um valor correto para este exercício alterando o argumento da função da solução. Embora existam casos de uso legítimos para alterar argumentos de funções, isso geralmente não é desejável e, no caso deste exercício, é claramente inesperado. Por esse motivo, a suíte de testes tem um teste que falha caso o argumento tenha sido alterado depois da execução da função.
Crie sua conta no Exercism para aprender e dominar JavaScript com 37 conceitos159 exercícios e mentoria humana de verdade, tudo de graça.