Quarter
Extends:
A quarter-of-year, such as 'Q2'.
Quarter
is an enum representing the 4 quarters of the year -
Q1, Q2, Q3 and Q4. These are defined as January to March, April to June,
July to September and October to December.
The int
value follows the quarter, from 1 (Q1) to 4 (Q4).
It is recommended that applications use the enum rather than the int
value
to ensure code clarity.
Do not use ordinal()
to obtain the numeric representation of Quarter
.
Use getValue()
instead.
This enum represents a common concept that is found in many calendar systems. As such, this enum may be used by any calendar system that has the quarter-of-year concept defined exactly equivalent to the ISO calendar system.
Static Method Summary
Static Public Methods | ||
public static |
Obtains an instance of |
|
public static |
Obtains an instance of |
|
public static |
Obtains an instance of |
|
public static |
replacement for enum |
|
public static |
replacement for enum |
Method Summary
Public Methods | ||
public |
adjustInto(temporal: Temporal): Temporal Adjusts the specified temporal object to have this quarter-of-year. |
|
public |
Compares this Quarter to another Quarter. |
|
public |
displayName(style: TextStyle, locale: Locale): string Gets the textual representation, such as 'Q1' or '4th quarter'. |
|
public |
equals(other: *): boolean |
|
public |
firstMonth(): Month Gets the first of the three months that this quarter refers to. |
|
public |
get(field: TemporalField): number Gets the value of the specified field from this quarter-of-year as an |
|
public |
getLong(field: TemporalField): number Gets the value of the specified field from this quarter-of-year as a |
|
public |
hashCode(): number A hash code for this quarter. |
|
public |
isSupported(field: TemporalField): boolean Checks if the specified field is supported. |
|
public |
length(leapYear: boolean): number Gets the length of this quarter in days. |
|
public |
Returns the quarter that is the specified number of quarters before this one. |
|
public |
name(): string |
|
public |
ordinal(): number |
|
public |
Returns the quarter that is the specified number of quarters after this one. |
|
public |
query(query: TemporalQuery): * Queries this quarter-of-year using the specified query. |
|
public |
range(field: TemporalField): ValueRange Gets the range of valid values for the specified field. |
|
public |
toString(): string Outputs this quarter as a String, such as Q1 |
|
public |
value(): number Gets the quarter-of-year |
Static Public Methods
public static from(temporal: Temporal): Quarter source
Obtains an instance of Quarter
from a temporal object.
This obtains a quarter based on the specified temporal.
A TemporalAccessor
represents an arbitrary set of date and time information,
which this factory converts to an instance of Quarter
.
The conversion extracts the IsoFields.QUARTER_OF_YEAR field.
The extraction is only permitted if the temporal object has an ISO
chronology, or can be converted to a LocalDate
.
This method matches the signature of the functional interface TemporalQuery
allowing it to be used in queries via method reference, Quarter.from
.
Params:
Name | Type | Attribute | Description |
temporal | Temporal | the temporal-time object to convert, not null |
Throw:
if unable to convert to a |
public static of(quarterOfYear: number): Quarter source
Obtains an instance of Quarter
from an int
value.
Quarter
is an enum representing the 4 quarters of the year.
This factory allows the enum to be obtained from the int
value.
The int
value follows the quarter, from 1 (Q1) to 4 (Q4).
Params:
Name | Type | Attribute | Description |
quarterOfYear | number | the quarter-of-year to represent, from 1 (Q1) to 4 (Q4) |
Throw:
if the quarter-of-year is invalid |
public static ofMonth(monthOfYear: number): Quarter source
Obtains an instance of Quarter
from a month-of-year.
Quarter
is an enum representing the 4 quarters of the year.
This factory allows the enum to be obtained from the Month
value.
January to March are Q1, April to June are Q2, July to September are Q3 and October to December are Q4.
Params:
Name | Type | Attribute | Description |
monthOfYear | number | the month-of-year to convert from, from 1 to 12 |
Throw:
if the month-of-year is invalid |
Public Methods
public adjustInto(temporal: Temporal): Temporal source
Adjusts the specified temporal object to have this quarter-of-year.
This returns a temporal object of the same observable type as the input with the quarter-of-year changed to be the same as this.
The adjustment is equivalent to using Temporal.with
passing IsoFields.QUARTER_OF_YEAR as the field.
If the specified temporal object does not use the ISO calendar system then
a DateTimeException
is thrown.
In most cases, it is clearer to reverse the calling pattern by using Temporal.with:
// these two lines are equivalent, but the second approach is recommended
temporal = thisQuarter.adjustInto(temporal);
temporal = temporal.with(thisQuarter);
For example, given a date in May, the following are output:
dateInMay.with(Q1); // three months earlier
dateInMay.with(Q2); // no change
dateInMay.with(Q3); // three months later
dateInMay.with(Q4); // six months later
This instance is immutable and unaffected by this method call.
Params:
Name | Type | Attribute | Description |
temporal | Temporal | the target object to be adjusted, not null |
Throw:
if unable to make the adjustment |
|
if numeric overflow occurs |
public compareTo(other: Quarter): number source
Compares this Quarter to another Quarter.
The comparison is based on the value of the Quarter. It is "consistent with equals", as defined by Comparable.
Params:
Name | Type | Attribute | Description |
other | Quarter | the other quarter to compare to, not null |
Return:
number | the comparator value, negative if less, positive if greater |
public displayName(style: TextStyle, locale: Locale): string source
Gets the textual representation, such as 'Q1' or '4th quarter'.
This returns the textual name used to identify the quarter-of-year, suitable for presentation to the user. The parameters control the style of the returned text and the locale.
If no textual mapping is found then the {@link #getValue() numeric value} is returned.
Return:
string | the text value of the day-of-week, not null |
public equals(other: *): boolean source
Params:
Name | Type | Attribute | Description |
other | * |
Return:
boolean |
public firstMonth(): Month source
Gets the first of the three months that this quarter refers to.
Q1 will return January. Q2 will return April. Q3 will return July. Q4 will return October.
To obtain the other two months of the quarter, simply use {@link Month#plus(long)} on the returned month.
public get(field: TemporalField): number source
Gets the value of the specified field from this quarter-of-year as an int
.
This queries this quarter for the value for the specified field. The returned value will always be within the valid range of values for the field. If it is not possible to return the value, because the field is not supported or for some other reason, an exception is thrown.
If the field is IsoFields.QUARTER_OF_YEAR then the
value of the quarter-of-year, from 1 to 4, will be returned.
All ChronoField
instances will throw an UnsupportedTemporalTypeException
.
If the field is not a ChronoField
, then the result of this method
is obtained by invoking TemporalField.getFrom(TemporalAccessor)
passing this
as the argument. Whether the value can be obtained,
and what the value represents, is determined by the field.
Params:
Name | Type | Attribute | Description |
field | TemporalField | the field to get, not null |
Return:
number | the value for the field, within the valid range of values |
Throw:
if a value for the field cannot be obtained or the value is outside the range of valid values for the field |
|
if the field is not supported or
the range of values exceeds an |
|
if numeric overflow occurs |
public getLong(field: TemporalField): number source
Gets the value of the specified field from this quarter-of-year as a long
.
This queries this quarter for the value for the specified field. If it is not possible to return the value, because the field is not supported or for some other reason, an exception is thrown.
If the field is {@link IsoFields#QUARTER_OF_YEAR QUARTER_OF_YEAR} then the
value of the quarter-of-year, from 1 to 4, will be returned.
All other ChronoField
instances will throw an UnsupportedTemporalTypeException
.
If the field is not a ChronoField
, then the result of this method
is obtained by invoking TemporalField.getFrom(TemporalAccessor)
passing this
as the argument. Whether the value can be obtained,
and what the value represents, is determined by the field.
Params:
Name | Type | Attribute | Description |
field | TemporalField | the field to get, not null |
Return:
number | the value for the field |
Throw:
if a value for the field cannot be obtained |
|
if the field is not supported |
|
if numeric overflow occurs |
public isSupported(field: TemporalField): boolean source
Checks if the specified field is supported.
This checks if this quarter-of-year can be queried for the specified field. If false, then calling the {@link #range(TemporalField) range} and {@link #get(TemporalField) get} methods will throw an exception.
If the field is {@link IsoFields#QUARTER_OF_YEAR QUARTER_OF_YEAR} then
this method returns true.
All ChronoField
instances will return false.
If the field is not a ChronoField
, then the result of this method
is obtained by invoking TemporalField.isSupportedBy(TemporalAccessor)
passing this
as the argument.
Whether the field is supported is determined by the field.
Params:
Name | Type | Attribute | Description |
field | TemporalField | the field to check, null returns false |
Return:
boolean | true if the field is supported on this quarter-of-year, false if not |
public length(leapYear: boolean): number source
Gets the length of this quarter in days.
This takes a flag to determine whether to return the length for a leap year or not.
Q1 has 90 in a standard year and 91 days in a leap year. Q2 has 91 days. Q3 and Q4 have 92 days.
Params:
Name | Type | Attribute | Description |
leapYear | boolean | true if the length is required for a leap year |
Return:
number | the length of this month in days, from 90 to 92 |
public minus(quarters: number): Quarter source
Returns the quarter that is the specified number of quarters before this one.
The calculation rolls around the start of the year from Q1 to Q4. The specified period may be negative.
This instance is immutable and unaffected by this method call.
Params:
Name | Type | Attribute | Description |
quarters | number | the quarters to subtract, positive or negative |
public plus(quarters: number): Quarter source
Returns the quarter that is the specified number of quarters after this one.
The calculation rolls around the end of the year from Q4 to Q1. The specified period may be negative.
This instance is immutable and unaffected by this method call.
Params:
Name | Type | Attribute | Description |
quarters | number | the quarters to add, positive or negative |
public query(query: TemporalQuery): * source
Queries this quarter-of-year using the specified query.
This queries this quarter-of-year using the specified query strategy object.
The TemporalQuery
object defines the logic to be used to
obtain the result. Read the documentation of the query to understand
what the result of this method will be.
The result of this method is obtained by invoking the
{@link TemporalQuery.queryFrom(TemporalAccessor)} method on the
specified query passing this
as the argument.
Params:
Name | Type | Attribute | Description |
query | TemporalQuery | the query to invoke, not null |
Return:
* | the query result, null may be returned (defined by the query) |
Throw:
if unable to query (defined by the query) |
|
if numeric overflow occurs (defined by the query) |
public range(field: TemporalField): ValueRange source
Gets the range of valid values for the specified field.
The range object expresses the minimum and maximum valid values for a field. This quarter is used to enhance the accuracy of the returned range. If it is not possible to return the range, because the field is not supported or for some other reason, an exception is thrown.
If the field is {@link IsoFields#QUARTER_OF_YEAR QUARTER_OF_YEAR} then the
range of the quarter-of-year, from 1 to 4, will be returned.
All ChronoField
instances will throw an UnsupportedTemporalTypeException
.
If the field is not a ChronoField
, then the result of this method
is obtained by invoking TemporalField.rangeRefinedBy(TemporalAccessor)
passing this
as the argument.
Whether the range can be obtained is determined by the field.
Params:
Name | Type | Attribute | Description |
field | TemporalField | the field to query the range for, not null |
Throw:
if the range for the field cannot be obtained |
|
if the field is not supported |
public toString(): string source
Outputs this quarter as a String, such as Q1
Return:
string | a string representation of this quarter, not null |
public value(): number source
Gets the quarter-of-year int
value.
The values are numbered following the ISO-8601 standard, from 1 (Q1) to 4 (Q4).
Return:
number | the quarter-of-year, from 1 (Q1) to 4 (Q4) |