1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Javaで月の最終日を導出する方法

Posted at

#Javaで月の最終日を求めたい
Javaで月の最終日を求める必要があったのですが意外とはまったのでメモ。

#java.util.Calenderを利用
日付系ののライブラリを使用することも可能ですが、以下のように、java.util.CalenderクラスのgetActualMaximum()メソッドを用いれば可能です。

test.java
//2019年1月の最終日を求める
int year = 2019;
int month = 1;

Calendar cal = Calendar.getInstance();
cal.clear();//場合によっては必要

cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month-1); //月は1月が0

int lastDayOfMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

#注意点1:月を設定する場合のclear()
最初にカレンダーのインスタンスを生成する際に引数なしでgetInstance()すると、現在の日付でインスタンスが作成されます。メソッドを呼び出すのが31日などの場合には、次に30日までしかない月を設定した場合、おかしなことになります。これは、事前にclear()を呼び出すことで回避できます。

#注意点2:月を設定する場合の値
Calrenderクラスでは、Calendar.Monthは月の値から1引いたものが実際の値です。
月をセットする際に、実際の月数より1小さい数をセットする必要があります。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?