tilbage til lektionen

Hvor mange sekunder til morgen?

vigtighed: 5

Skriv en funktion getSecondsToTomorrow() der returnerer antallet af sekunder fra starten af dagen i morgen.

For eksempel, hvis tiden nu var 23:00, så:

getSecondsToTomorrow() == 3600

P.S. Funktionen skal fungere for enhver dag, dagen i dag er ikke fastsat.

For at få antallet af millisekunder til morgen, kan vi fra “morgens 00:00:00” subtrahere den nuværende dags tidsstempel.

Først genererer vi den “morgens”, og så gør vi det:

function getSecondsToTomorrow() {
  let now = new Date();

  // imorgens tidsstempel
  let tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);

  let diff = tomorrow - now; // forskel i millisekunder
  return Math.round(diff / 1000); // konverter til sekunder
}

Alternative løsning:

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;
}

Bemærk, at mange lande har sommer tid (DST), så der kan være dage med 23 eller 25 timer. Vi kan ønske at behandle sådanne dage separat.