Spec-Zone.ru › OpenJDK 17

Класс WeekFields

java.lang.Object
java.time.temporal.WeekFields
Все реализуемые интерфейсы:
Serializable
public final class WeekFields extends Object implements Serializable
Локализованные определения полей день недели, неделя месяца и неделя года.

Стандартная неделя состоит из семи дней, но у разных культур есть разные определения некоторых других аспектов недели. Этот класс представляет собой определение недели для целей предоставления TemporalField экземпляров.

WeekFields предоставляет пять полей, dayOfWeek(), weekOfMonth(), weekOfYear(), weekOfWeekBasedYear() и weekBasedYear(), которые обеспечивают доступ к значениям из любого временного объекта.

Вычисления для дня недели, недели месяца и недели года основаны на пролептическом году, месяце года, дне месяца и ISO дне недели, которые основаны на эпохе дня и хронологии. Значения могут не совпадать со значением год эры в зависимости от хронологии.

Неделя определяется:

  • Первый день недели. Например, стандарт ISO-8601 считает понедельник первым днем недели.
  • Минимальное количество дней в первой неделе. Например, стандарт ISO-8601 считает первую неделю как требующую как минимум 4 дней.
Вместе эти два значения позволяют разделить год или месяц на недели.

Неделя месяца

Используется одно поле: неделя месяца. Вычисление гарантирует, что недели никогда не перекрывают границу месяца. Месяц делится на периоды, где каждый период начинается в определенный первый день недели. Самый ранний период называется неделей 0, если он содержит меньше минимального количества дней, и неделей 1, если он содержит как минимум минимальное количество дней.
Примеры WeekFields
Дата День недели Первый день: понедельник
Минимальные дни: 4
Первый день: понедельник
Минимальные дни: 5
2008-12-31 Среда Неделя 5 декабря 2008 года Неделя 5 декабря 2008 года
2009-01-01 Четверг Неделя 1 января 2009 года Неделя 0 января 2009 года
2009-01-04 Воскресенье Неделя 1 января 2009 года Неделя 0 января 2009 года
2009-01-05 Понедельник Неделя 2 января 2009 года Неделя 1 января 2009 года

Неделя года

Используется одно поле: неделя года. Вычисление гарантирует, что недели никогда не перекрывают границу года. Год делится на периоды, где каждый период начинается в определенный первый день недели. Самый ранний период называется неделей 0, если он содержит меньше минимального количества дней, и неделей 1, если он содержит как минимум минимальное количество дней.

Неделя года по базе

Для недели года по базе используются два поля, одно для week-of-week-based-year и одно для week-based-year. В неделе года по базе каждая неделя принадлежит только одному году. Неделя 1 года — это первая неделя, которая начинается в первый день недели и содержит как минимум минимальное количество дней. Первая и последняя недели года могут содержать дни соответственно из предыдущего или следующего календарного года.
Примеры WeekFields для недели года по базе
Дата День недели Первый день: понедельник
Минимальные дни: 4
Первый день: понедельник
Минимальные дни: 5
2008-12-31 Среда Неделя 1 2009 года Неделя 53 2008 года
2009-01-01 Четверг Неделя 1 2009 года Неделя 53 2008 года
2009-01-04 Воскресенье Неделя 1 2009 года Неделя 53 2008 года
2009-01-05 Понедельник Неделя 2 2009 года Неделя 1 2009 года
Требования к реализации:
Этот класс неизменяемый и потокобезопасный.
С:
1.8
См. также:
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final WeekFields ISO
Определение ISO-8601, где неделя начинается с понедельника, а первая неделя имеет минимум 4 дня.
static final WeekFields SUNDAY_START
Общее определение недели, которое начинается с воскресенья, а первая неделя имеет минимум 1 день.
static final TemporalUnit WEEK_BASED_YEARS
Единица, представляющая недели года по базе для добавления и вычитания.

Краткое описание методов

Модификатор и тип Метод Описание
TemporalField dayOfWeek()
Возвращает поле для доступа к дню недели, основанное на этом WeekFields.
boolean equals(Object object)
Проверяет, равен ли этот WeekFields указанному объекту.
DayOfWeek getFirstDayOfWeek()
Возвращает первый день недели.
int getMinimalDaysInFirstWeek()
Возвращает минимальное количество дней в первой неделе.
int hashCode()
Хеш-код для этого WeekFields.
static WeekFields of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek)
Получает экземпляр WeekFields по первому дню недели и минимальному количеству дней.
static WeekFields of(Locale locale)
Получает экземпляр WeekFields, соответствующий локали.
String toString()
Строковое представление экземпляра этого WeekFields.
TemporalField weekBasedYear()
Возвращает поле для доступа к году недели по базе, основанное на этом WeekFields.
TemporalField weekOfMonth()
Возвращает поле для доступа к неделе месяца, основанное на этом WeekFields.
TemporalField weekOfWeekBasedYear()
Возвращает поле для доступа к неделе недели по базе, основанное на этом WeekFields.
TemporalField weekOfYear()
Возвращает поле для доступа к неделе года, основанное на этом WeekFields.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание полей

ISO

public static final WeekFields ISO
Определение ISO-8601, где неделя начинается с понедельника, а первая неделя должна содержать минимум 4 дня.

Стандарт ISO-8601 определяет календарную систему, основанную на неделях. Он использует понятия «год, основанный на неделях», и «неделя года, основанного на неделях», чтобы разделить дни вместо стандартного года/месяца/дня.

Обратите внимание, что первая неделя может начинаться в предыдущем календарном году. Также обратите внимание, что первые несколько дней календарного года могут находиться в годе, основанном на неделях, соответствующем предыдущему календарному году.

SUNDAY_START

public static final WeekFields SUNDAY_START
Общее определение недели, начинающейся с воскресенья, и первой недели с минимумом 1 дня.

Определено как начинающееся с воскресенья и с минимумом 1 дня в месяце. Это определение недели используется в США и других европейских странах.

ГОДЫ_ОСНОВАННЫЕ_НА_НЕДЕЛЯХ

public static final TemporalUnit WEEK_BASED_YEARS
Единица, представляющая годы, основанные на неделях, для целей сложения и вычитания.

Это позволяет прибавить или вычесть количество лет, основанных на неделях, к дате. Единица равна либо 52, либо 53 неделям. Оценочная продолжительность года, основанного на неделях, такая же, как у стандартного года ISO в 365.2425 Days.

Правила сложения добавляют количество лет, основанных на неделях, к существующему значению поля «год, основанный на неделях», сохраняя «неделю года, основанного на неделях», и «день недели», если номер недели не слишком велик для целевого года. В этом случае неделя устанавливается на последнюю неделю года с тем же днем недели.

Эта единица — неизменяемый и потокобезопасный синглтон.

Подробное описание методов

of

public static WeekFields of(Locale locale)
Получает экземпляр WeekFields , подходящий для определенного региона.

Это позволит получить соответствующие значения из поставщика данных локализации. Если регион содержит «fw» (Первый день недели) и/или «rg» (Переопределение региона) Расширения Юникода, возвращаемый экземпляр будет отражать указанные значения с этими расширениями. Если указаны оба «fw» и «rg», значение из расширения «fw» переопределяет неявное значение из расширения «rg».

Параметры:
locale - регион, используемый, не null
Возвращает:
определение недели, не null

of

public static WeekFields of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek)
Получает экземпляр WeekFields по первому дню недели и минимальному числу дней.

Первый день недели определяет ISO DayOfWeek , который является 1-м днем недели. Минимальное количество дней в первой неделе определяет, сколько дней должно присутствовать в месяце или году, начиная с первого дня недели, прежде чем неделя будет считаться первой. Значение 1 будет учитывать первый день месяца или года как часть первой недели, а значение 7 потребует всех семи дней, чтобы быть в новом месяце или году.

Экземпляры WeekFields являются синглтонами; для каждой уникальной комбинации firstDayOfWeek и minimalDaysInFirstWeek будет возвращен один и тот же экземпляр.

Параметры:
firstDayOfWeek - первый день недели, не null
minimalDaysInFirstWeek - минимальное количество дней в первой неделе, от 1 до 7
Возвращает:
определение недели, не null
Исключения:
IllegalArgumentException - если минимальное значение дней меньше одного или больше семи

getFirstDayOfWeek

public DayOfWeek getFirstDayOfWeek()
Возвращает первый день недели.

Первый день недели варьируется в зависимости от культуры. Например, в США используется воскресенье, а во Франции и в стандарте ISO-8601 используется понедельник. Этот метод возвращает первый день, используя стандартный DayOfWeek перечисление.

Возвращает:
первый день недели, не null

getMinimalDaysInFirstWeek

public int getMinimalDaysInFirstWeek()
Возвращает минимальное количество дней в первой неделе.

Количество дней, рассматриваемых для определения первой недели месяца или года, варьируется в зависимости от культуры. Например, ISO-8601 требует 4 дней (более половины недели), чтобы быть присутствующими, прежде чем считать первую неделю.

Возвращает:
минимальное количество дней в первой неделе месяца или года, от 1 до 7

dayOfWeek

public TemporalField dayOfWeek()
Возвращает поле для доступа к дню недели на основе этой WeekFields.

Это похоже на ChronoField.DAY_OF_WEEK, но использует значения для дня недели, основанные на этой WeekFields. Дни пронумерованы от 1 до 7, где first day-of-week присваивается значение 1.

Например, если первый день недели — воскресенье, то он будет иметь значение 1, а другие дни варьируются от понедельника как 2 до субботы как 7.

На стадии разрешения при парсинге локальный день недели будет преобразован в стандартный ChronoField день недели. День недели должен находиться в допустимом диапазоне от 1 до 7. Другие поля в этом классе создают даты, используя стандартный день недели.

Возвращает:
поле, обеспечивающее доступ к дню недели с локальным нумерацией, не null

weekOfMonth

public TemporalField weekOfMonth()
Возвращает поле для доступа к неделе месяца на основе этой WeekFields.

Это представляет собой понятие количества недель в месяце, где недели начинаются в определенный день недели, например, понедельник. Это поле обычно используется с dayOfWeek().

Неделя один (1) — это неделя, начинающаяся в getFirstDayOfWeek(), где в месяце присутствует как минимум getMinimalDaysInFirstWeek() дней. Таким образом, первая неделя может начинаться до minDays дней до начала месяца. Если первая неделя начинается после начала месяца, то период до этого — неделя ноль (0).

Например:
- если 1-й день месяца — понедельник, неделя один начинается с 1-го и нет недели ноль
- если 2-й день месяца — понедельник, неделя один начинается со 2-го, а 1-й — в неделе ноль
- если 4-й день месяца — понедельник, неделя один начинается с 4-го, а с 1-го по 3-й — в неделе ноль
- если 5-й день месяца — понедельник, неделя два начинается с 5-го, а с 1-го по 4-й — в неделе один

Это поле может использоваться с любой календарной системой.

На этапе разрешения при парсинге дата может быть создана из года, недели месяца, месяца года и дня недели.

В строгом режиме все четыре поля проверяются на соответствие допустимому диапазону значений. Поле «неделя месяца» проверяется для обеспечения того, что полученный месяц — запрашиваемый месяц.

В умном режиме все четыре поля проверяются на соответствие допустимому диапазону значений. Поле «неделя месяца» проверяется от 0 до 6, что означает, что полученная дата может быть в другом месяце, отличном от указанного.

В мягком режиме год и день недели проверяются на соответствие диапазону допустимых значений. Результирующая дата рассчитывается в соответствии с следующим четырехэтапным подходом. Во-первых, создайте дату на первый день первой недели января в запрошенном году. Затем возьмите месяц года, вычтите один и добавьте количество месяцев к дате. Затем возьмите неделю месяца, вычтите один и добавьте количество недель к дате. Наконец, скорректируйте до правильного дня недели в локализованной неделе.

Возвращает:
поле, обеспечивающее доступ к неделе месяца, не null

weekOfYear

public TemporalField weekOfYear()
Возвращает поле для доступа к неделе года, основанные на этой WeekFields.

Это представляет понятие количества недель в году, где недели начинаются в определенный день недели, например, понедельник. Это поле обычно используется с dayOfWeek().

Неделя один (1) — это неделя, начинающаяся в getFirstDayOfWeek(), где в году присутствует как минимум getMinimalDaysInFirstWeek() дней. Таким образом, первая неделя может начинаться до minDays дней до начала года. Если первая неделя начинается после начала года, то период до этого — неделя ноль (0).

Например:
- если 1-й день года — понедельник, неделя один начинается с 1-го и нет недели ноль
- если 2-й день года — понедельник, неделя один начинается со 2-го, а 1-й — в неделе ноль
- если 4-й день года — понедельник, неделя один начинается с 4-го, а с 1-го по 3-й — в неделе ноль
- если 5-й день года — понедельник, неделя два начинается с 5-го, а с 1-го по 4-й — в неделе один

Это поле может использоваться с любой календарной системой.

На этапе разрешения при парсинге дата может быть создана из года, недели года и дня недели.

В строгом режиме все три поля проверяются на соответствие допустимому диапазону значений. Поле «неделя года» проверяется для обеспечения того, что полученный год — запрашиваемый год.

В умном режиме все три поля проверяются на соответствие допустимому диапазону значений. Поле «неделя года» проверяется от 0 до 54, что означает, что полученная дата может быть в другом году, отличном от указанного.

В мягком режиме год и день недели проверяются на соответствие диапазону допустимых значений. Результирующая дата рассчитывается в соответствии с следующим трехэтапным подходом. Во-первых, создайте дату на первый день первой недели в запрошенном году. Затем возьмите неделю года, вычтите один и добавьте количество недель к дате. Наконец, скорректируйте до правильного дня недели в локализованной неделе.

Возвращает:
поле, обеспечивающее доступ к неделе года, не null

weekOfWeekBasedYear

public TemporalField weekOfWeekBasedYear()
Возвращает поле для доступа к неделе недели-года, основанной на этом WeekFields.

Это представляет собой концепцию подсчета недель в году, где недели начинаются с фиксированного дня недели, например, понедельника, и каждая неделя принадлежит ровно одному году. Это поле обычно используется с dayOfWeek() и weekBasedYear().

Неделя первая(1) — это неделя, начинающаяся с getFirstDayOfWeek(), где в году есть как минимум getMinimalDaysInFirstWeek() дней. Если первая неделя начинается после начала года, то период до этого относится к последней неделе предыдущего года.

Например:
- если 1-ый день года — понедельник, неделя первая начинается с 1-го
- если 2-ой день года — понедельник, неделя первая начинается со 2-го, а 1-ый — в последней неделе предыдущего года
- если 4-ый день года — понедельник, неделя первая начинается с 4-го, а 1-ый по 3-ий — в последней неделе предыдущего года
- если 5-ый день года — понедельник, неделя вторая начинается с 5-го, а 1-ый по 4-ый — в первой неделе

Это поле может использоваться с любой системой календаря.

На стадии разрешения при разборе дата может быть создана из недели-года, недели года и дня недели.

В режиме строгого все три поля проверяются на соответствие диапазону допустимых значений. Поле недели года проверяется, чтобы гарантировать, что полученный год недели — запрашиваемый год недели.

В режиме умного все три поля проверяются на соответствие диапазону допустимых значений. Поле недели недели-года проверяется от 1 до 53, что означает, что полученная дата может быть в следующем году недели по сравнению со специфицированным.

В режиме мягкого, год и день недели проверяются на соответствие диапазону допустимых значений. Результирующая дата вычисляется, аналогично следующему трёхэтапному подходу. Во-первых, создается дата на первый день первой недели в запрошенном году недели. Затем берется неделя недели-года, вычитается единица и добавляется соответствующее количество недель к дате. Наконец, корректируется до правильного дня недели в локализованной неделе.

Возвращает:
поле, обеспечивающее доступ к неделе недели-года, не null

weekBasedYear

public TemporalField weekBasedYear()
Возвращает поле для доступа к году недели-года, основанной на этом WeekFields.

Это представляет собой концепцию года, где недели начинаются с фиксированного дня недели, такого как понедельник, и каждая неделя принадлежит ровно одному году. Это поле обычно используется с dayOfWeek() и weekOfWeekBasedYear().

Неделя первая(1) — это неделя, начинающаяся с getFirstDayOfWeek(), где в году есть как минимум getMinimalDaysInFirstWeek() дней. Таким образом, первая неделя может начинаться до начала года. Если первая неделя начинается после начала года, то период до этого относится к последней неделе предыдущего года.

Это поле может использоваться с любой системой календаря.

На стадии разрешения при разборе дата может быть создана из недели-года, недели года и дня недели.

В режиме строгого все три поля проверяются на соответствие диапазону допустимых значений. Поле недели года проверяется, чтобы гарантировать, что полученный год недели — запрашиваемый год недели.

В режиме умного все три поля проверяются на соответствие диапазону допустимых значений. Поле недели недели-года проверяется от 1 до 53, что означает, что полученная дата может быть в следующем году недели по сравнению со специфицированным.

В режиме мягкого, год и день недели проверяются на соответствие диапазону допустимых значений. Результирующая дата вычисляется, аналогично следующему трёхэтапному подходу. Во-первых, создается дата на первый день первой недели в запрошенном году недели. Затем берется неделя недели-года, вычитается единица и добавляется соответствующее количество недель к дате. Наконец, корректируется до правильного дня недели в локализованной неделе.

Возвращает:
поле, обеспечивающее доступ к году недели-года, не null

equals

public boolean equals(Object object)
Проверяет, равен ли этот WeekFields указанному объекту.

Сравнение основано на полном состоянии правил, то есть на первом дне недели и минимальном количестве дней.

Overrides:
equals в классе Object
Параметры:
object - другие правила для сравнения, null возвращает false
Возвращает:
true, если это равно указанным правилам
См. также:
  • Object.hashCode()
  • HashMap

hashCode

public int hashCode()
Хэш-код для этого WeekFields.
Overrides:
hashCode в классе Object
Возвращает:
подходящий хэш-код
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Строковое представление этого WeekFields объекта.
Overrides:
toString в классе Object
Возвращает:
строковое представление, не null

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/temporal/WeekFields.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API