назад до уроку

Скільки секунд до завтра?

важливість: 5

Створіть функцію getSecondsToTomorrow(), що повертає кількість секунд до завтра.

Наприклад, якщо зараз є 23:00, то:

getSecondsToTomorrow() == 3600

P.S. Функція повинна працювати в будь-який день, “сьогодні” не є жорстко закодованим.

Щоб отримати кількість мілісекунд до завтра, ми можемо від “завтра 00:00:00” відняти поточну дату.

По-перше, ми створюємо це “завтра”, а потім віднімемо:

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

  // завтрашня дата
  let tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);

  let diff = tomorrow - now; // різниця в мс
  return Math.round(diff / 1000); // перетворити до секунд
}

Alternative solution:

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

Будь ласка, зверніть увагу, що у багатьох країнах є літній час, тому можуть бути дні з 23 або 25 годин. Ми можемо обробляти такі дні окремо.