JAVA中獲得一個月最大天數的方法(備忘)


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.DATE, 1); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, month - 1); 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 的處理)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM