LoginSignup
2
1

More than 5 years have passed since last update.

列挙型Monthを確認してみた

Last updated at Posted at 2017-03-08

目的

 列挙型MonthのAPIを見る機会がありました。 >Month@Java8API
 ところが「Monthの数値表現の取得にordinal()を使用しないでください。かわりにgetValue()を使用してください。」と書かれていました。
 というわけで、確認してみようと思いました。

確認

コード

MonthTest.java
import java.time.Month;

public class MonthTest {
    public static void main(String[] args) {
        MonthTest test = new MonthTest();
        test.execute();
    }

    private void execute() {
        Month[] months = Month.values();
        System.out.println(String.format("%9s: %8s / %8s", "Name", "ordinal", "getValue"));
        for(Month month : months) {
            System.out.println(String.format("%9s: %8d / %8d", month, month.ordinal(), month.getValue()));
        }
    }
}

出力結果

     Name:  ordinal / getValue
  JANUARY:        0 /        1
 FEBRUARY:        1 /        2
    MARCH:        2 /        3
    APRIL:        3 /        4
      MAY:        4 /        5
     JUNE:        5 /        6
     JULY:        6 /        7
   AUGUST:        7 /        8
SEPTEMBER:        8 /        9
  OCTOBER:        9 /       10
 NOVEMBER:       10 /       11
 DECEMBER:       11 /       12

まとめ

getValueは1から始まることが分かった。
昔は月は0始まりでインクリメントして使ってたけど、getValueを使えば意識をしないで使える。
年と日が1始まりなのに、月だけ0始まりだった違和感が解消されるかも。

2
1
0

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
2
1