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

اليوم الأخير من الشهر؟

قم بكتابة دالة getLastDayOfMonth(year, month) تقوم برد اليوم الأخير من الشهر. أحياناً تكون القيمة 30، 31 أو حتى 28/29 في حال كان الشهر هو شباط.

الوسطاء:

  • year – أربعة أرقام لتمثيل السنة، على سبيل المثال 2012.
  • month – الشهر، من 0 وحتى 11.

على سبيل المثال، getLastDayOfMonth(2012, 1) = 29 (سنة كبيسة، شباط/فبراير).

افتح sandbox بالإختبارات.

لنقم بإنشاء غرض من التاريخ باستخدام الشهر التالي، ولكن لنقم بتمرير 0 الممثل لليوم:

function getLastDayOfMonth(year, month) {
  let date = new Date(year, month + 1, 0);
  return date.getDate();
}

alert( getLastDayOfMonth(2012, 0) ); // 31
alert( getLastDayOfMonth(2012, 1) ); // 29
alert( getLastDayOfMonth(2013, 1) ); // 28

تبدأ التواريخ عادة من 1، ولكن من الناحية الفنية يمكننا تمرير أية رقم، وسيقوم غرض التاريخ بتصحيح نفسه بشكل تلقائي، لذلك وعند تمرير القيمة 0، فهي تعني “يوم واحد قبل اليوم الأول من الشهر”، بمعنى آخر: “اليوم الأخير من الشهر السابق”.

افتح الحل الإختبارات في sandbox.