![](/img/trans.png)
[英]What is the difference between Calendar.WEEK_OF_MONTH and Calendar.DAY_OF_WEEK_IN_MONTH in Java's Calendar class?
[英]Java's Calendar.DAY_OF_WEEK_IN_MONTH max value is 6. Is this correct?
如標題所述,創建一個java.util.GregorianCalendar對象,假設日歷並運行
calendar.getMaximum(Calendar.DAY_OF_WEEK_IN_MONTH)
它返回6! 據我所知,這應該是5,因為calendar.getMaximum(Calendar.DAY_OF_MONTH)
等於31和31/7 == 4,其余為余,即最多有5周,因此一天最多可以出現5一個月內
我在這里想念什么嗎?
Javadoc指出:
例如,如果一個月有31天,則DAY_OF_WEEK_IN_MONTH -1將與DAY_OF_WEEK_IN_MONTH 5和4的末尾重疊。
這承認最大值可以為5。為了有一個取值為6的理由,必須有一個36天的月份,即使進行日期/時間更正也不應該發生。 至少我沒有找到類似關於陽歷的信息。
是的,最大值應為5。
編輯:我也檢查了參考實現的來源,沒有理由取值6。
沒錯,這沒有道理。 為了使DAY_OF_WEEK_IN_MONTH
為6
,必須有一個月份,其中包含6個星期一(例如)。
其6而不是5的原因是因為在英語日歷中,一周的開始日期是星期日。 例如,如果一個月的第一天,例如7月1日是星期日,那么7月2日已經是下一周。 由於7月有31天,因此您需要6周的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.