Java:ひと月の日数を得る方法

   2016/01/15

管理人兼雑用係のイガジーです。
今日もちょとした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()を使う方が
シンプルです。

コメント一覧

  1. 匿名 より:

    month は 0 が 1月なので注意です。(パラメータとしては month – 1 にしないと一ケ月ずれます。)

    • igazee より:

      そうですね、確かに間違えやすいです。
      ご指摘ありがとうございました。

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)