La forma en que medimos el tiempo es un poco caótica. Un minuto tiene 60 segundos y una hora tiene 60 minutos. Esto viene de la antigua Babilonia, donde usaban el 60 como base de su sistema de numeración. Un día tiene 24 horas, una semana tiene 7 días... ¿y cuántos días tiene un mes? Pues los días de un mes dependen no solo de qué mes sea, sino también del tipo de calendario que se use en el país en el que vives.
¿Y si, en lugar de eso, usáramos solo segundos para expresar intervalos de tiempo? Entonces podríamos usar los prefijos del sistema métrico para escribir grandes cantidades de segundos en cantidades más fáciles de comprender.
Si alguna vez colonizamos Marte o algún otro planeta, medir el tiempo va a ser aún más caótico. Si alguien dice «año», ¿se refiere a un año en la Tierra o a un año en Marte?
La idea de este ejercicio proviene de la novela de ciencia ficción "A Deepness in the Sky", del autor Vernor Vinge. En ella, el autor usa el sistema métrico como base para medir el tiempo.
Tu tarea es determinar la fecha y la hora un gigasegundo después de una fecha determinada.
Un gigasegundo son mil millones de segundos. Es un uno seguido de nueve ceros.
Si naciste el 24 de enero de 2015 a las 22:00 (10:00:00 p. m.), entonces cumplirías un gigasegundo el 2 de octubre de 2046 a las 23:46:40 (11:46:40 p. m.).
El código se lee más a menudo de lo que se escribe, y leer un número grande o largo dentro de otro texto puede ser todo un reto. Aquí tienes dos formas de hacer que los números sean más legibles:
Usar guiones bajos en los literales numéricos. 1_000_000 se lee mejor que 1000000, y 10_100_201_330 es más fácil de recorrer con la vista que 10100201330. Para más información, consulta PEP-0515.
Usar notación exponencial o notación científica. El carácter e (o E) seguido de un número entero representa la potencia de 10 por la que hay que multiplicar el número que precede a la e (es decir: 1e6, el 1 se multiplica por 10 elevado a la potencia de 6, lo que da 1000000). Para más detalles, echa un vistazo a esta referencia sobre la notación científica.
Este ejercicio explora objetos del módulo datetime de Python:
Regístrate en Exercism para aprender y dominar Python con 17 conceptos146 ejercicios y mentoría humana real, todo gratis.