gpt4 book ai didi

java - calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) 对第 1-11 个月返回 52,对第 12 个月返回 53

转载 作者:行者123 更新时间:2023-11-29 04:47:50 30 4
gpt4 key购买 nike

我正在使用 calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) 来获取给定年份的总周数。这是我正在使用的功能:

public static void main(String[] args) {

for(int i=2012; i<=2016; i++) {
System.out.println("Year : " + i + ", Total Weeks : " + getNumWeeksForYear(i));
}

}
public static int getNumWeeksForYear(int year) {
Calendar c = Calendar.getInstance();
c.set(year, 12, 31); //issue
c.setFirstDayOfWeek(Calendar.MONDAY );
return c.getActualMaximum(Calendar.WEEK_OF_YEAR);
}
Output with c.set(year, 12, 31): Year : 2012, Total Weeks : 52Year : 2013, Total Weeks : 52Year : 2014, Total Weeks : 52Year : 2015, Total Weeks : 52Year : 2016, Total Weeks : 53
Output with c.set(year, 1, 31): Year : 2012, Total Weeks : 53Year : 2013, Total Weeks : 52Year : 2014, Total Weeks : 52Year : 2015, Total Weeks : 52Year : 2016, Total Weeks : 52

当日历月设置为 12 月时,我无法弄清楚为什么一年中的总周数不同。我尝试使用 1-12 月,对于 1-11,周数相同但变化了12 月。从实验中我可以预测它只发生在闰年。

我引用了以下链接:Calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) weirdness

但这并没有回答我的问题。

最佳答案

第一个月是

private static final int JANUARY = 0;

最后一个月是

private static final int DECEMBER = 11;

这意味着 12 月是下一年的第一个月。

关于java - calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) 对第 1-11 个月返回 52,对第 12 个月返回 53,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36450592/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com