بازگشت به درس

آخرین روز ماه؟

اهمیت: 5

تابع getLastDayOfMonth(year, month) را بنویسید که آخرین روز ماه را برمی‌گرداند. بعضی اوقات آخرین روز 30ام، 31ام یا حتی برای ماه فوریه 28/29ام است.

پارامترها:

  • year – سال 4 رقمی، برای مثال 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 شروع می‌شوند اما از لحاظ فنی ما می‌توانیم هر عددی را قرار دهیم، شیء date به طور خودکار خودش را تنظیم می‌کند. پس زمانی که ما 0 قرار می‌دهیم، به این معنی است که «یک روز قبل از اولین روز ماه» یا به عبارتی دیگر: «آخرین روز ماه قبل».

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

باز کردن راه‌حل همراه با تست‌ها درون یک sandbox.