Класс 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, если он содержит не менее минимального количества дней.
Дата День недели Первый день: понедельник
Минимальные дни: 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 года — это первая неделя, которая начинается с первого дня недели и содержит не менее минимального количества дней. Первая и последняя недели года могут содержать дни из предыдущего или следующего календарного года соответственно.
Дата День недели Первый день: понедельник
Минимальные дни: 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 WeekFields ISO

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

static WeekFields SUNDAY_START

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

static 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 день в месяце. Это определение недели используется в США и других европейских странах.

WEEK_BASED_YEARS

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 указанному объекту.

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

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

hashCode

public int hashCode()

Код хэширования для этого WeekFields.

Переопределяет:
hashCode в классе Object
Возвращает:
подходящий код хэширования
См. также:
Object.equals(java.lang.Object), System.identityHashCode(java.lang.Object)

toString

public String toString()

Строковое представление этого WeekFields экземпляра.

Переопределяет:
toString в классе Object
Возвращает:
строковое представление, не null

© 1993, 2020, 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/11/docs/api/java.base/java/time/temporal/WeekFields.html

Spec-Zone .ru
спецификации, руководства, описания, API