الرجوع الي الدرس

كم بقي عدد من الثواني حتى الغد؟

قم بإنشاء دالة ()getSecondsToTomorrow والتي تقوم بإرجاع عدد الثواني المتبقية حتى الغد.

على سبيل المثال، إذا كانت الوقت الحالي هو 23:00، فعندئذٍ:

getSecondsToTomorrow() == 3600

ملاحظة: يجب أن تعمل الدالة عند أي يوم، أي أن اليوم “today” لا يحمل أي قيمة ثابتة.

للحصول على عدد المللي ثانية حتى الغد، يمكننا من “الغد 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); // التحويل لمرتبة الثواني
}

حل بديل:

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

يرجى ملاحظة أن العديد من البلدان لديها التوقيت الصيفي (DST)، لذلك قد يكون هناك أيام بِ 23 أو 25 ساعة. لذلك، يجب معاملة هذه الأيام بشكل منفصل.