¿Cuantos segundos faltan para el día de mañana?
Crea una función getSecondsToTomorrow()
que devuelva la cantidad de segundos que faltan para el día de mañana.
Por ejemplo, si ahora son las 23:00
, entonces:
getSecondsToTomorrow
(
)
==
3600
P.D.: La función debe poder funcionar para cualquier día, sin valores fijos en el código como “today”.
Para obtener la cantidad de milisegundos que faltan para mañana, podemos restarle la fecha actual a “mañana 00:00:00”.
Primero generamos ese “mañana” y luego restamos:
function
getSecondsToTomorrow
(
)
{
let
now =
new
Date
(
)
;
// el día de mañana
let
tomorrow =
new
Date
(
now.
getFullYear
(
)
,
now.
getMonth
(
)
,
now.
getDate
(
)
+
1
)
;
let
diff =
tomorrow -
now;
// diferencia en ms
return
Math.
round
(
diff /
1000
)
;
// conversión a segundos
}
Solución alternativa:
function
getSecondsToTomorrow
(
)
{
let
now =
new
Date
(
)
;
let
hour =
now.
getHours
(
)
;
let
minutes =
now.
getMinutes
(
)
;
let
seconds =
now.
getSeconds
(
)
;
let
totalSecondsToday =
(
hour *
60
+
minutes)
*
60
+
seconds;
let
totalSecondsInADay =
86400
;
return
totalSecondsInADay -
totalSecondsToday;
}
Ten en cuenta que algunos países tienen horarios de verano (DST), así que es posible que existan días con 23 o 25 horas. Podríamos querer tratar estos días por separado.