Class WeekFields
 java.lang.Object

 org.threeten.bp.temporal.WeekFields

 All Implemented Interfaces:
java.io.Serializable
public final class WeekFields extends java.lang.Object implements java.io.Serializable
Localized definitions of the dayofweek, weekofmonth and weekofyear fields.A standard week is seven days long, but cultures have different definitions for some other aspects of a week. This class represents the definition of the week, for the purpose of providing
TemporalField
instances.WeekFields provides three fields,
dayOfWeek()
,weekOfMonth()
, andweekOfYear()
that provide access to the values from anytemporal object
.The computations for dayofweek, weekofmonth, and weekofyear are based on the
prolepticyear
,monthofyear
,dayofmonth
, andISO dayofweek
which are based on theepochday
and the chronology. The values may not be aligned with theyearofEra
depending on the Chronology.A week is defined by:
 The first dayofweek. For example, the ISO8601 standard considers Monday to be the first dayofweek.
 The minimal number of days in the first week. For example, the ISO8601 standard counts the first week as needing at least 4 days.
Together these two values allow a year or month to be divided into weeks.
Week of Month
One field is used: weekofmonth. The calculation ensures that weeks never overlap a month boundary. The month is divided into periods where each period starts on the defined first dayofweek. The earliest period is referred to as week 0 if it has less than the minimal number of days and week 1 if it has at least the minimal number of days.Examples of WeekFields Date Dayofweek First day: Monday
Minimal days: 4First day: Monday
Minimal days: 520081231 Wednesday Week 5 of December 2008 Week 5 of December 2008 20090101 Thursday Week 1 of January 2009 Week 0 of January 2009 20090104 Sunday Week 1 of January 2009 Week 0 of January 2009 20090105 Monday Week 2 of January 2009 Week 1 of January 2009 Week of Year
One field is used: weekofyear. The calculation ensures that weeks never overlap a year boundary. The year is divided into periods where each period starts on the defined first dayofweek. The earliest period is referred to as week 0 if it has less than the minimal number of days and week 1 if it has at least the minimal number of days.This class is immutable and threadsafe.
 See Also:
 Serialized Form


Field Summary
Fields Modifier and Type Field Description static WeekFields
ISO
The ISO8601 definition, where a week starts on Monday and the first week has a minimum of 4 days.static WeekFields
SUNDAY_START
The common definition of a week that starts on Sunday.

Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description TemporalField
dayOfWeek()
Returns a field to access the day of week based on thisWeekFields
.boolean
equals(java.lang.Object object)
Checks if thisWeekFields
is equal to the specified object.DayOfWeek
getFirstDayOfWeek()
Gets the first dayofweek.int
getMinimalDaysInFirstWeek()
Gets the minimal number of days in the first week.int
hashCode()
A hash code for thisWeekFields
.static WeekFields
of(java.util.Locale locale)
Obtains an instance ofWeekFields
appropriate for a locale.static WeekFields
of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek)
Obtains an instance ofWeekFields
from the first dayofweek and minimal days.java.lang.String
toString()
A string representation of thisWeekFields
instance.TemporalField
weekBasedYear()
Returns a field to access the year of a weekbasedyear based on thisWeekFields
.TemporalField
weekOfMonth()
Returns a field to access the week of month based on thisWeekFields
.TemporalField
weekOfWeekBasedYear()
Returns a field to access the week of a weekbasedyear based on thisWeekFields
.TemporalField
weekOfYear()
Returns a field to access the week of year based on thisWeekFields
.



Field Detail

ISO
public static final WeekFields ISO
The ISO8601 definition, where a week starts on Monday and the first week has a minimum of 4 days.The ISO8601 standard defines a calendar system based on weeks. It uses the weekbasedyear and weekofweekbasedyear concepts to split up the passage of days instead of the standard year/month/day.
Note that the first week may start in the previous calendar year. Note also that the first few days of a calendar year may be in the weekbasedyear corresponding to the previous calendar year.

SUNDAY_START
public static final WeekFields SUNDAY_START
The common definition of a week that starts on Sunday.Defined as starting on Sunday and with a minimum of 1 day in the month. This week definition is in use in the US and other European countries.


Method Detail

of
public static WeekFields of(java.util.Locale locale)
Obtains an instance ofWeekFields
appropriate for a locale.This will look up appropriate values from the provider of localization data.
 Parameters:
locale
 the locale to use, not null Returns:
 the weekdefinition, not null

of
public static WeekFields of(DayOfWeek firstDayOfWeek, int minimalDaysInFirstWeek)
Obtains an instance ofWeekFields
from the first dayofweek and minimal days.The first dayofweek defines the ISO
DayOfWeek
that is day 1 of the week. The minimal number of days in the first week defines how many days must be present in a month or year, starting from the first dayofweek, before the week is counted as the first week. A value of 1 will count the first day of the month or year as part of the first week, whereas a value of 7 will require the whole seven days to be in the new month or year.WeekFields instances are singletons; for each unique combination of
firstDayOfWeek
andminimalDaysInFirstWeek
the the same instance will be returned. Parameters:
firstDayOfWeek
 the first day of the week, not nullminimalDaysInFirstWeek
 the minimal number of days in the first week, from 1 to 7 Returns:
 the weekdefinition, not null
 Throws:
java.lang.IllegalArgumentException
 if the minimal days value is less than one or greater than 7

getFirstDayOfWeek
public DayOfWeek getFirstDayOfWeek()
Gets the first dayofweek.The first dayofweek varies by culture. For example, the US uses Sunday, while France and the ISO8601 standard use Monday. This method returns the first day using the standard
DayOfWeek
enum. Returns:
 the first dayofweek, not null

getMinimalDaysInFirstWeek
public int getMinimalDaysInFirstWeek()
Gets the minimal number of days in the first week.The number of days considered to define the first week of a month or year varies by culture. For example, the ISO8601 requires 4 days (more than half a week) to be present before counting the first week.
 Returns:
 the minimal number of days in the first week of a month or year, from 1 to 7

dayOfWeek
public TemporalField dayOfWeek()
Returns a field to access the day of week based on thisWeekFields
.This is similar to
ChronoField.DAY_OF_WEEK
but uses values for the dayofweek based on thisWeekFields
. The days are numbered from 1 to 7 where thefirst dayofweek
is assigned the value 1.For example, if the first dayofweek is Sunday, then that will have the value 1, with other days ranging from Monday as 2 to Saturday as 7.
In the resolving phase of parsing, a localized dayofweek will be converted to a standardized
ChronoField
dayofweek. The dayofweek must be in the valid range 1 to 7. Other fields in this class build dates using the standardized dayofweek. Returns:
 a field providing access to the dayofweek with localized numbering, not null

weekOfMonth
public TemporalField weekOfMonth()
Returns a field to access the week of month based on thisWeekFields
.This represents the concept of the count of weeks within the month where weeks start on a fixed dayofweek, such as Monday. This field is typically used with
dayOfWeek()
.Week one (1) is the week starting on the
getFirstDayOfWeek()
where there are at leastgetMinimalDaysInFirstWeek()
days in the month. Thus, week one may start up tominDays
days before the start of the month. If the first week starts after the start of the month then the period before is week zero (0).For example:
 if the 1st day of the month is a Monday, week one starts on the 1st and there is no week zero
 if the 2nd day of the month is a Monday, week one starts on the 2nd and the 1st is in week zero
 if the 4th day of the month is a Monday, week one starts on the 4th and the 1st to 3rd is in week zero
 if the 5th day of the month is a Monday, week two starts on the 5th and the 1st to 4th is in week one
This field can be used with any calendar system.
In the resolving phase of parsing, a date can be created from a year, weekofmonth, monthofyear and dayofweek.
In strict mode, all four fields are validated against their range of valid values. The weekofmonth field is validated to ensure that the resulting month is the month requested.
In smart mode, all four fields are validated against their range of valid values. The weekofmonth field is validated from 0 to 6, meaning that the resulting date can be in a different month to that specified.
In lenient mode, the year and dayofweek are validated against the range of valid values. The resulting date is calculated equivalent to the following four stage approach. First, create a date on the first day of the first week of January in the requested year. Then take the monthofyear, subtract one, and add the amount in months to the date. Then take the weekofmonth, subtract one, and add the amount in weeks to the date. Finally, adjust to the correct dayofweek within the localized week.
 Returns:
 a field providing access to the weekofmonth, not null

weekOfYear
public TemporalField weekOfYear()
Returns a field to access the week of year based on thisWeekFields
.This represents the concept of the count of weeks within the year where weeks start on a fixed dayofweek, such as Monday. This field is typically used with
dayOfWeek()
.Week one(1) is the week starting on the
getFirstDayOfWeek()
where there are at leastgetMinimalDaysInFirstWeek()
days in the year. Thus, week one may start up tominDays
days before the start of the year. If the first week starts after the start of the year then the period before is week zero (0).For example:
 if the 1st day of the year is a Monday, week one starts on the 1st and there is no week zero
 if the 2nd day of the year is a Monday, week one starts on the 2nd and the 1st is in week zero
 if the 4th day of the year is a Monday, week one starts on the 4th and the 1st to 3rd is in week zero
 if the 5th day of the year is a Monday, week two starts on the 5th and the 1st to 4th is in week one
This field can be used with any calendar system.
In the resolving phase of parsing, a date can be created from a year, weekofyear and dayofweek.
In strict mode, all three fields are validated against their range of valid values. The weekofyear field is validated to ensure that the resulting year is the year requested.
In smart mode, all three fields are validated against their range of valid values. The weekofyear field is validated from 0 to 54, meaning that the resulting date can be in a different year to that specified.
In lenient mode, the year and dayofweek are validated against the range of valid values. The resulting date is calculated equivalent to the following three stage approach. First, create a date on the first day of the first week in the requested year. Then take the weekofyear, subtract one, and add the amount in weeks to the date. Finally, adjust to the correct dayofweek within the localized week.
 Returns:
 a field providing access to the weekofyear, not null

weekOfWeekBasedYear
public TemporalField weekOfWeekBasedYear()
Returns a field to access the week of a weekbasedyear based on thisWeekFields
.This represents the concept of the count of weeks within the year where weeks start on a fixed dayofweek, such as Monday and each week belongs to exactly one year. This field is typically used with
dayOfWeek()
andweekBasedYear()
.Week one(1) is the week starting on the
getFirstDayOfWeek()
where there are at leastgetMinimalDaysInFirstWeek()
days in the year. If the first week starts after the start of the year then the period before is in the last week of the previous year.For example:
 if the 1st day of the year is a Monday, week one starts on the 1st
 if the 2nd day of the year is a Monday, week one starts on the 2nd and the 1st is in the last week of the previous year
 if the 4th day of the year is a Monday, week one starts on the 4th and the 1st to 3rd is in the last week of the previous year
 if the 5th day of the year is a Monday, week two starts on the 5th and the 1st to 4th is in week one
This field can be used with any calendar system.
In the resolving phase of parsing, a date can be created from a weekbasedyear, weekofyear and dayofweek.
In strict mode, all three fields are validated against their range of valid values. The weekofyear field is validated to ensure that the resulting weekbasedyear is the weekbasedyear requested.
In smart mode, all three fields are validated against their range of valid values. The weekofweekbasedyear field is validated from 1 to 53, meaning that the resulting date can be in the following weekbasedyear to that specified.
In lenient mode, the year and dayofweek are validated against the range of valid values. The resulting date is calculated equivalent to the following three stage approach. First, create a date on the first day of the first week in the requested weekbasedyear. Then take the weekofweekbasedyear, subtract one, and add the amount in weeks to the date. Finally, adjust to the correct dayofweek within the localized week.
 Returns:
 a field providing access to the weekofweekbasedyear, not null

weekBasedYear
public TemporalField weekBasedYear()
Returns a field to access the year of a weekbasedyear based on thisWeekFields
.This represents the concept of the year where weeks start on a fixed dayofweek, such as Monday and each week belongs to exactly one year. This field is typically used with
dayOfWeek()
andweekOfWeekBasedYear()
.Week one(1) is the week starting on the
getFirstDayOfWeek()
where there are at leastgetMinimalDaysInFirstWeek()
days in the year. Thus, week one may start before the start of the year. If the first week starts after the start of the year then the period before is in the last week of the previous year.This field can be used with any calendar system.
In the resolving phase of parsing, a date can be created from a weekbasedyear, weekofyear and dayofweek.
In strict mode, all three fields are validated against their range of valid values. The weekofyear field is validated to ensure that the resulting weekbasedyear is the weekbasedyear requested.
In smart mode, all three fields are validated against their range of valid values. The weekofweekbasedyear field is validated from 1 to 53, meaning that the resulting date can be in the following weekbasedyear to that specified.
In lenient mode, the year and dayofweek are validated against the range of valid values. The resulting date is calculated equivalent to the following three stage approach. First, create a date on the first day of the first week in the requested weekbasedyear. Then take the weekofweekbasedyear, subtract one, and add the amount in weeks to the date. Finally, adjust to the correct dayofweek within the localized week.
 Returns:
 a field providing access to the weekbasedyear, not null

equals
public boolean equals(java.lang.Object object)
Checks if thisWeekFields
is equal to the specified object.The comparison is based on the entire state of the rules, which is the first dayofweek and minimal days.
 Overrides:
equals
in classjava.lang.Object
 Parameters:
object
 the other rules to compare to, null returns false Returns:
 true if this is equal to the specified rules

hashCode
public int hashCode()
A hash code for thisWeekFields
. Overrides:
hashCode
in classjava.lang.Object
 Returns:
 a suitable hash code

toString
public java.lang.String toString()
A string representation of thisWeekFields
instance. Overrides:
toString
in classjava.lang.Object
 Returns:
 the string representation, not null

