Java中getMinimalDaysInFirstWeek方法的默认返回值是多少?

时间:2012-06-14 07:43:01

标签: java calendar

我搜索过但无法在java的getMinimalDaysInFirstWeek()类中找到Calender的默认值。我没有设置任何类似的语言环境等。我想知道第一周的默认最小天数是多少。不幸的是,我无法运行代码并检查自己,因为它在我只能阅读的服务器上。

2 个答案:

答案 0 :(得分:2)

Calendar.getInstance(),使用默认语言环境返回GregorianCalendar(通常)构造Calendar对象:

protected Calendar()
{
    this(TimeZone.getDefaultRef(), Locale.getDefault());
    sharedZone = true;
}

然后执行以下代码:

private void setWeekCountData(Locale desiredLocale)
{
   /* try to get the Locale data from the cache */
   int[] data = cachedLocaleData.get(desiredLocale);
   if (data == null) { /* cache miss */
      ResourceBundle bundle = LocaleData.getCalendarData(desiredLocale);
      data = new int[2];
      data[0] = Integer.parseInt(bundle.getString("firstDayOfWeek"));
      data[1] = Integer.parseInt(bundle.getString("minimalDaysInFirstWeek"));
      cachedLocaleData.putIfAbsent(desiredLocale, data);
   }
   firstDayOfWeek = data[0];
   minimalDaysInFirstWeek = data[1];
}

所以 - minimalDaysInFirstWeek从包sun.util.resources的编译资源包中检索,CalendarData_<locale>.class(在Oracle JVM上)。

例如,对于波兰语语言环境,我们有:

public final class CalendarData_pl extends LocaleNamesBundle
{
  protected final Object[][] getContents()
  {
    return new Object[][] { { "firstDayOfWeek", "2" }, { "minimalDaysInFirstWeek", "4" } };
  }
}

答案 1 :(得分:0)

通常使用[https://de.wikipedia.org/wiki/Gau%C3%9Fsche_Wochentagsformel]来计算和计算格里高利历(在维基百科上找不到合适的英文版本:'/){{3} } 因此,最小值可能来自此公式或按照惯例(例如01.01.1900)

似乎我误解了你的问题。希望该链接提供了一些理论方面的见解。