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