Java:ひと月の日数を得る方法
管理人兼雑用係のイガジーです。
今日もちょとしたTipsです。
Javaで、ある月の日数を知りたい時は
以下のようにgetActualMaximumを使いましょう。
Calendar c = new GregorianCalendar(year,month,1);
知ってしまえば簡単ですね。
int days=c.getActualMaximum(Calendar.DAY_OF_MONTH);
# ここの month は0始まりで、1月は0、2月は1を与えます。
ある日と、ある日(いずれも年月日指定)の間の
日数を知りたい時は
Calendar c1 = new GregorianCalendar(y1,m1,d1);
で得られるので
long t1=c1.getTimeInMillis();
Calendar c2 = new GregorianCalendar(y2,m2,d2);
long t2=c2.getTimeInMillis();
int days=(int)((t2-t1)/(1000*60*60*24));
ひと月の日数も同様に
Calendar c = new GregorianCalendar(year,month,1);
としても得る事ができます。
long t1=c.getTimeInMillis();
c.add(Calendar.MONTH, 1);
int days=(int)((c.getTimeInMillis() - t1)/(1000*60*60*24));
が、やはり最初のgetActualMaximum()を使う方が
シンプルです。
month は 0 が 1月なので注意です。(パラメータとしては month – 1 にしないと一ケ月ずれます。)