簡體   English   中英

Java的Calendar.DAY_OF_WEEK_IN_MONTH的最大值為6。這正確嗎?

[英]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_MONTH6 ,必須有一個月份,其中包含6個星期一(例如)。

其6而不是5的原因是因為在英語日歷中,一周的開始日期是星期日。 例如,如果一個月的第一天,例如7月1日是星期日,那么7月2日已經是下一周。 由於7月有31天,因此您需要6周的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM