Java 月の最終日を文字列型で取得する方法 - Calendarクラス ホームページ制作 | 墨田区

Java 月の最終日を文字列型で取得する方法 – Calendarクラス

LINEで送る
Pocket

Java で、月の最終日を文字列型で取得する方法をご紹介します。
月の最終日というのは、毎月変わりますよね。そう、30日で終わったり、31日で終わったりします。
2月にいたっては、28日だったり、うるう年の場合 29日だったりします。

実務の中では、この最終日を意識して業務をすることが多々ありますので、
取得する方法をしっかり覚えておきましょう。

それでは、サンプルソースを見ながら解説していきます。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


サンプルソース

/**
 * 今月の最終日を文字列で返します。
 *
 * @return 日文字列(30,31など)
 */
public static String getLastDayOfThisMonth() {
    Calendar calendar = GregorianCalendar.getInstance();
    calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, 0);
    int lastDayOfThisMonth = calendar.get(Calendar.DATE);
    return String.valueOf(lastDayOfThisMonth);
}

まず、日時の操作をおこなうときは、GregorianCalendar クラスを使います。
この GregorianCalendar クラスは、Calendar クラスを継承していますので、
用意されている settergetter を利用することで、年月時分秒を設定・取得が可能です。
あとは、取得できた日にちを文字列型にキャストしてあげればおしまいです。

calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, 0);
この月加算している部分を変更してあげれば、先月や翌月の最終日の取得も可能です。

サンプルは以下のようになります。
/**
 * 先月の最終日を文字列で返します。
 *
 * @return 日文字列(30,31など)
 */
public static String getLastDayOfBeforeMonth() {
    Calendar calendar = GregorianCalendar.getInstance();
    calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 0);
    int lastDayOfBeforeMonth = calendar.get(Calendar.DATE);
    return  String.valueOf(lastDayOfBeforeMonth);
}
/**
 * 来月の最終日を文字列で返します。
 *
 * @return 日文字列(30,31など)
 */
public static String getLastDayOfAfterMonth() {
    Calendar calendar = GregorianCalendar.getInstance();
    calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 2, 0);
    int lastDayOfAfterMonth = calendar.get(Calendar.DATE);
    return String.valueOf(lastDayOfAfterMonth);
}

テスト

ここでは、CalendarUtils というユーティリティクラスに static メソッドとして記述しています。
こうすることで、いちいち同じことを記述する必要がなく、ソースを美しく保つことができます。

それでは、早速テストしてみましょう。
System.out.println(CalendarUtils.getLastDayOfThisMonth());      // 今月
System.out.println(CalendarUtils.getLastDayOfBeforeMonth());    // 先月
System.out.println(CalendarUtils.getLastDayOfAfterMonth());     // 来月

テスト結果

31  // 今月
31  // 先月
28  // 来月
今日は、1月30日でしたので、今月は 31 日まで。先月 12 月も 31日まで。
そして、来月 2 月は、28 日までという結果になりました。

これらの日付操作は、実務では本当によく利用しますので、十分に理解しておくことをおすすめします。

おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

Javaの勉強が思うように進まないときは!

Javaの勉強が思うように進まないのであれば、プロに直接質問ができる プログラミングスクール を検討してみてはいかがでしょうか?プログラミングスクールに申し込めば、短期間で一定のスキルを身に着けることができます!

Javaコースあり!オンライン完結型 テックアカデミー TechAcademy [テックアカデミー]

どこかに通う必要なく、自宅でプログラミングやアプリ開発を学ぶことができるのが特徴のスクールです。未経験からプロになるまで最短4週間という、超短期集中型の学習ができます。年齢層は10代〜40代の男女が中心で、学引があり多くの学生が受講しているそうですよ。オンラインで受講ができるスクールですので、全国どこからでも学習ができますね。

更にさらに、パーソナルメンターにチャット質問できちゃうんです!!

これは素晴らしいことですよ!ハマったり困ったことが起こるのがプログラミングの世界。知っている誰かに聞けば数分で解決することが、自分だけだと何時間もかかったりしますから!いや、これホントですよ。

しかし、便利な世の中になりましたよねー。一昔前ではオンラインで学習できるなんて、思いもよりませんでしたから。講師もバリバリのエンジニアですので、現場で使えるスキルを教えてもらえます。なんとも素晴らしいスクールがあったものですね。学割を使えば社会人より半額以下で受講できますから、学生さんには超おすすめです。

これから Java プログラミングを勉強して、将来はプログラマーとして活躍したいと思っている方には、就職保証付きJavaエンジニアコース というのがおすすめです。就職先まで保証してくれるとなれば、もう安心して学習に専念できますね。夢への第一歩はここから始まるのかも。あ、将来はライバルですね^^

オンラインスクールですから営業エリアは全国です。
気になる方は一度チェックしてみてください。無料の動画説明会も常時開催していますよ。


Javaコースあり!未経験者にウケてる KENスクール パソコンスクール・パソコン教室 【KENスクール】個別指導のWeb-DTP・OA・IT PCスクール

理解度や学習ペースに合わせて、一人ひとりが納得して前進できる授業を提供してくれるのが特徴です。特に課題製作は現場さながらで、実務に即したものとなっていますので短期でのスキルアップが望めます。自宅学習のサポートも充実していて、授業内容をいつでもビデオで振り返ることができるのもうれしいですね。好きな時間に好きな場所で、無理なくスケジューリングできるので、仕事の忙しい方でも柔軟に学ぶことができますよ。

更にさらに、なんと 就職サポート をしてくれるというのですから驚きです!!

履歴書の書き方から面接指導、求人の紹介など、具体的な就職先まで提案してくれるんです!私も「もっと早く出会いたかったなぁー、こんなスクール」・・・って思っちゃいました^^

東京・神奈川・愛知・大阪を営業エリアとされています。
まずは気軽に 無料体験予約 に申し込んでみるのもアリですよ。


コメント - Thank you for the comment.

  1.  

    これだとだめですよ。
    カレンダー取得後、calendar .clear();を入れないと、29日に実行したときに2月の月末が2/31となります。

    返信

     
    •  

      コメントありがとうございます。全てのフィールドを未定義にするclearメソッドですね。今回のケースでは必要ないと思いますがいかがでしょうか?今日はちょうど2/29ですが上記ソースを実行したところ29という値が返ってきました。実行環境はJava7で、実行メソッドはgetLastDayOfThisMonthです。

      返信

       

コメントを残す

お名前 (必須)
メールアドレス
(アドレスは公開されません)

コメント(必須)

Trackback URL