MENU

JavaScript日付・時刻

【JavaScript】月の最終日を求める

更新日:2021/05/11

 

JavaScriptで月の最終日を求める方法を紹介します。

 

存在しない日付でDateオブジェクトを生成して最終日を求める

 

日付を指定してDateオブジェクトを生成する場合、存在しない日付を指定するとエラーになります。

 


new Date("2020/6/32");
// Invalid Date エラー

 

しかし、31日までなら次の月に換算してくれます。

 


new Date("2020/6/31");
// Date Wed Jul 01 2020 00:00:00 GMT+0900 (日本標準時)

 

Julは7月なので、上の例は2020年7月1日でDateオブジェクトが生成されたことになります。

 

この性質を利用することで、月の最終日を求めることができます。

月の最終日の求めかた

 

月の最終日を求めるには、31日から30,29…と順番にDateオブジェクトに変換していきます。
そのとき、getMonth()の返す値が対象となっている月と最初に一致する日が、月の最終日です。

 


const getLastDay = ( year , month ) => {
    for( let i = 31 ; i > 27 ; i -- ) {
        if( new Date( year , month -1, i ).getMonth() === month -1) return i;
    }
}

console.log( getLastDay( 2000 , 2) ); // 29

 

Dateオブジェクトで月は1月を0、2月を1として扱います。
そのため、コード上では月からマイナス1しています。

 

次のようにfindを使用して書くこともできます。

 


const getLastDay2 = ( year , month ) => [31,30,29,28].find(
    e =>  new Date( year , month -1, e ).getMonth() === month - 1 
);

 

けーちゃんおススメJavaScript入門書

  • スラスラ読める JavaScript ふりがなプログラミング
  • プログラム未経験者がJavaScript始めるならコレ!
    コードを掲載して自分で理解しろという投げっぱなしな入門書とは異なり、コードに一つ一つどんなことをやっているかをふりがなという形式で解説しています。
    それでいてJavaScriptの基礎と応用を学べる良書です。
  • これからWebをはじめる人のHTML&CSS、JavaScriptのきほんのきほん
  • JavaScriptの機能を実践で活かすにはHTMLやCSSの知識が不可欠です。
    しかしそれらの知識があることが前提として書かれている書籍が多い中、この本は総合的な知識を身に着けることができます。
    HTMLやCSSの知識も不安な方には、ぴったりの一冊です
  •  

    入門書の役割は、自分のやりたいことをネットで調べることができるようになるための、基礎的な知識の獲得です。
    まずはこれらの本でしっかりと基礎知識を身につけましょう。
    そしてもっと高度なことや専門的なことはネットで調べ、情報が足りないと感じたら書籍を購入してください。


    期間限定情報:
    6/21と6/22は年に一度のプライム会員大感謝祭!
    欲しかったアレが安く手に入るチャンスです
    忘れずにチェックしてください!
    僕は以前のタイムセール祭りで4Kモニタが買ったけど、それより安かったらどうしよう・・・

    ちなみにプライム会員でなくても、無料体験で参加できるようです。
    欲しい商品があるか、確認だけでもしておきましょう。

    記事の内容について

     

    こんにちはけーちゃんです。
    説明するのって難しいですね。


    「なんか言ってることおかしくない?」
    たぶん、こんなご意見あると思います。

    裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。

    そんなときは、ご意見もらえたら嬉しいです。

    ご意見はこちら。
    https://note.affi-sapo-sv.com/info.php

    【お願い】

    お願い

    ■このページのURL


    ■このページのタイトル


    ■リンクタグ


    ※リンクして頂いた方でご希望者には貴サイトの紹介記事を作成してリンクを設置します。
    サイト上部の問い合わせよりご連絡ください。
    ただしサイトのジャンルによっては、お断りさせていただくことがあります。