gpt4 book ai didi

java - Calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) 奇怪

转载 作者:搜寻专家 更新时间:2023-11-01 01:58:39 25 4
gpt4 key购买 nike

要么我不理解方法 getActualMaximum(int) 或字段 WEEK_OF_YEAR,要么涉及 Sun 错误(或所有三个)...有人可以向我解释为什么(至少在德语语言环境中...) 以下代码:

    Locale.setDefault( Locale.GERMAN );
Calendar c = Calendar.getInstance();
c.set( Calendar.YEAR, 2010 );
c.set( Calendar.MONTH, 0 );
c.set( Calendar.DAY_OF_MONTH, 1 );
System.out.println("max: "+c.getActualMaximum( Calendar.WEEK_OF_YEAR ));
System.out.println("actual: "+c.get( Calendar.WEEK_OF_YEAR ));

产生以下输出:

    max:    52
actual: 53

这是 getActualMaximum(int) 的 Javadoc:

Returns the maximum value that the specified calendar field could have, given the time value of this Calendar. For example, the actual maximum value of the MONTH field is 12 in some years, and 13 in other years in the Hebrew calendar system.


编辑

情节变厚了。 在英语语言环境中 (-Duser.language=en -Duser.country=us) 输出是:

    max:    52
actual: 1

似乎指出它是德语语言环境的 Sun 错误?

最佳答案

此信息正确:

max:    52
actual: 53

2010 年最多有 52 周。实际的一周是 53,因为 2009 年最多有 53 周,而且大多数周从星期日或星期一开始。在大多数情况下,第一周是一年中的第一周,一月份有 4 天。由于 1 月 1 日这一周在 2010 年只有 2 或 3 天,因此该周被视为 2009 年的一部分。

很可能英语地区有不同的规则来确定第 1 周,比如第一周是 1 月 1 日这一周。

维基百科正确解释:wikipedia week article

关于java - Calendar.getActualMaximum(Calendar.WEEK_OF_YEAR) 奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2047673/

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