レッスンに戻る

月の最後日は?

重要性: 5

月の最後の日を返す関数 getLastDayOfMonth(year, month) を書いてください。それは 30, 31, または2月であれば 28/29 です。

パラメータ:

  • year – 4桁の年、例えば 2012
  • month – 月、0 から 11

例えば、getLastDayOfMonth(2012, 1) = 29 (うるう年、2月)

テストと一緒にサンドボックスを開く

次の月を使って日付を作りますが、その日としてゼロを渡します:

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 を渡したとき、それは “その月の1日より、1日前” を意味します。: つまり、“前の月の最終日” になります。

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

サンドボックスでテストと一緒に解答を開く