JAVA中獲得一個月最大天數的方法

來源:互聯網
上載者:User

標籤:

Calendar 類是一個抽象類別,為日曆欄位之間的轉換提供了一些方法。
其中有一個重要方法 getActualMaximum ,該方法用於返回指定日曆欄位實際的最大值。

利用這個方法(Calendar.getActualMaximum),我們可以獲得某年某月的天數。

 

代碼如下:

  /**   * 獲得某個月最大天數   *    * @param year 年份   * @param month 月份 (1-12)   * @return 某個月最大天數   */  public int getMaxDayByYearMonth(int year, int month) {    Calendar calendar = Calendar.getInstance();    calendar.set(Calendar.YEAR, year - 1);    calendar.set(Calendar.MONTH, month);    return calendar.getActualMaximum(Calendar.DATE);  }

 

備忘:以上代碼有兩個需要注意的地方:

① Calendar除了getActualMaximum方法之外,還有一個看起來類似的方法getMaximum,但是這兩個方法是不同的:
getActualMaximum 返回實際的最大數值,getMaximum 返回的是可能的最大數值。
上面的代碼如果改成getMaximum,那麼一般情況都會恒定的返回31 (月份中可能的最大天數是31)

② Calendar 的月份取值範圍是 0 - 11 , 0代表1月 11代表12月份
(這是因為Java中的月份遵循了羅馬曆中的規則:當時一年中的月份數量是不固定的,第一個月是JANUARY。而Java中Calendar.MONTH返回的數值其實是當前月距離第一個月有多少個月份的數值,JANUARY在Java中返回“0”,所以我們操作月份的時候會根據需要做 +1 或 -1 的處理)

 

JAVA中獲得一個月最大天數的方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.