為什麼java的month要加1??

請問一下

為什麼Calender物件的MONTH抓今天的月份要加1??

為什麼其它的就不用??

2 Answers

Rating
  • Anonymous
    2 decades ago
    Favorite Answer

    因為 java 的 Calendar 物件內建的 Constant Field Values 是從 0 開始算ㄚ

    就像宣告 Array 也是從 index 0 開始

    你可以參考 Java API 的 Constant Field Values

    http://java.sun.com/j2se/1.4.2/docs/api/constant-v...

    public static final int MONTH 2

    public static final int JANUARY 0

    public static final int FEBRUARY 1

    public static final int MARCH 2

    public static final int APRIL 3

    public static final int MAY 4

    public static final int JUNE 5

    public static final int JULY 6

    public static final int AUGUST 7

    public static final int SEPTEMBER 8

    public static final int OCTOBER 9

    public static final int NOVEMBER 10

    public static final int DECEMBER 11

    所以如果執行 Calendar.getInstance().get(Calendar.MONTH)

    取得今天的月份 (九月) 因為它回傳的是 Calendar.SEPTEMBER

    對應的參數值為 8

    所以你必須加 1 囉

  • ?
    Lv 6
    2 decades ago

    記得傳回的值是對應於Calendar的某個常數,會這樣設計的原因在於實際上英文中對於星期或月份並不附以數字上的意涵,如Sunday、 Monday等,幸而除了月份、星期之外,傳回的值都對應於真正的時間意涵,畢竟像西元、小時、分等等本身就是以數字表示。

    請參考:

    http://caterpillar.onlyfun.net/Gossip/JavaGossip-V...

Still have questions? Get your answers by asking now.