La façon dont on mesure le temps est un peu chaotique. Il y a 60 secondes dans une minute, et 60 minutes dans une heure. Cela remonte à l'ancienne Babylone, où l'on utilisait 60 comme base de son système de numération. Il y a 24 heures dans une journée, 7 jours dans une semaine, et combien de jours dans un mois ? Eh bien, cela dépend non seulement du mois, mais aussi du type de calendrier utilisé dans le pays où tu vis.
Et si, au lieu de ça, on n'utilisait que des secondes pour exprimer les intervalles de temps ? On pourrait alors utiliser les préfixes du système métrique pour écrire de grands nombres de secondes sous forme de quantités plus faciles à appréhender.
Si un jour on colonise Mars ou une autre planète, mesurer le temps deviendra encore plus compliqué. Si quelqu'un dit « année », parle-t-il d'une année sur Terre ou d'une année sur Mars ?
L'idée de cet exercice vient du roman de science-fiction "A Deepness in the Sky" de l'auteur Vernor Vinge. L'auteur y utilise le système métrique comme base pour mesurer le temps.
Ta tâche consiste à déterminer la date et l'heure une gigaseconde après une date donnée.
Une gigaseconde correspond à un milliard de secondes. C'est un 1 suivi de neuf zéros.
Si tu étais né le 24 janvier 2015 à 22 h 00, tu atteindrais l'âge d'une gigaseconde le 2 octobre 2046 à 23 h 46 min 40 s.
L'entrée et la sortie de la fonction gigasecond sont de type Date.
Il est possible de renvoyer une valeur correcte pour cet exercice en mutant l'argument de la fonction de la solution. Même s'il existe des cas d'usage légitimes pour muter les arguments d'une fonction, cela reste généralement indésirable et, dans le cas de cet exercice, clairement inattendu. C'est pourquoi la suite de tests contient un test qui échoue si l'argument a été modifié après l'exécution de la fonction.
Inscris-toi sur Exercism pour apprendre et maîtriser JavaScript avec 37 concepts159 exercices, et un vrai mentorat humain, le tout gratuitement.