2

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

4

2 回答 2

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];
}

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

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

public final class CalendarData_pl extends LocaleNamesBundle
{
  protected final Object[][] getContents()
  {
    return new Object[][] { { "firstDayOfWeek", "2" }, { "minimalDaysInFirstWeek", "4" } };
  }
}
于 2012-06-14T07:53:57.727 回答
0

通常使用公历并使用 [https://de.wikipedia.org/wiki/Gau%C3%9Fsche_Wochentagsformel] 计算(在维基百科上找不到合适的英文版本:'/)1 因此,最小值可能此公式的结果或根据惯例(例如 01.01.1900)

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

于 2012-06-14T08:04:19.900 回答