torna alle lezioni

Quanti secondi mancano a domani?

importanza: 5

Create una funzione getSecondsToTomorrow() che ritorni il numero di secondi mancanti al giorno successivo.

Ad esempio, se ora sono le 23:00, allora:

getSecondsToTomorrow() == 3600

P.S. Anche in questo caso la funzione non dovrebbe forzare il valore del giorno.

Per ottenere il numero di millisecondi mancanti al giorno successivo, possiamo sottrarre da “domani alle 00:00:00” la data attuale.

Prima generiamo l’oggetto “domani”:

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

  // data di domani
  let tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);

  let diff = tomorrow - now; // differenza in ms
  return Math.round(diff / 1000); // converti in seconds
}

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

Da notare che molti stati potrebbero sottostare a DST, quindi alcuni giorni potrebbero durare 23 ore mentre altri 25. Vorremmo trattare queste situazioni separatamente.