Home Reference Source
public class | source

Quarter

Extends:

@js-joda/core~TemporalAccessor → Quarter

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

from(temporal: Temporal): Quarter

Obtains an instance of Quarter from a temporal object.

public static

of(quarterOfYear: number): Quarter

Obtains an instance of Quarter from an int value.

public static

ofMonth(monthOfYear: number): Quarter

Obtains an instance of Quarter from a month-of-year.

public static

valueOf(name: string): Quarter

replacement for enum valueOf(name)

public static

replacement for enum values()

Method Summary

Public Methods
public

Adjusts the specified temporal object to have this quarter-of-year.

public

compareTo(other: Quarter): number

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

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 int.

public

getLong(field: TemporalField): number

Gets the value of the specified field from this quarter-of-year as a long.

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

minus(quarters: number): Quarter

Returns the quarter that is the specified number of quarters before this one.

public

name(): string

public

ordinal(): number

public

plus(quarters: number): Quarter

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

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 int value.

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:

NameTypeAttributeDescription
temporal Temporal

the temporal-time object to convert, not null

Return:

Quarter

the quarter-of-year, not null

Throw:

DateTimeException

if unable to convert to a Quarter

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:

NameTypeAttributeDescription
quarterOfYear number

the quarter-of-year to represent, from 1 (Q1) to 4 (Q4)

Return:

Quarter

the quarter-of-year, not null

Throw:

DateTimeException

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:

NameTypeAttributeDescription
monthOfYear number

the month-of-year to convert from, from 1 to 12

Return:

Quarter

the quarter-of-year, not null

Throw:

DateTimeException

if the month-of-year is invalid

public static valueOf(name: string): Quarter source

replacement for enum valueOf(name)

Params:

NameTypeAttributeDescription
name string

Return:

Quarter

public static values(): Quarter[] source

replacement for enum values()

Return:

Quarter[]

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:

NameTypeAttributeDescription
temporal Temporal

the target object to be adjusted, not null

Return:

Temporal

the adjusted object, not null

Throw:

DateTimeException

if unable to make the adjustment

ArithmeticException

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:

NameTypeAttributeDescription
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.

Params:

NameTypeAttributeDescription
style TextStyle

the length of the text required, not null

locale Locale

the locale to use, not null

Return:

string

the text value of the day-of-week, not null

public equals(other: *): boolean source

Params:

NameTypeAttributeDescription
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.

Return:

Month

the first month in the quarter, not null

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:

NameTypeAttributeDescription
field TemporalField

the field to get, not null

Return:

number

the value for the field, within the valid range of values

Throw:

DateTimeException

if a value for the field cannot be obtained or the value is outside the range of valid values for the field

UnsupportedTemporalTypeException

if the field is not supported or the range of values exceeds an int

ArithmeticException

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:

NameTypeAttributeDescription
field TemporalField

the field to get, not null

Return:

number

the value for the field

Throw:

DateTimeException

if a value for the field cannot be obtained

UnsupportedTemporalTypeException

if the field is not supported

ArithmeticException

if numeric overflow occurs

public hashCode(): number source

A hash code for this quarter.

Return:

number

a suitable hash code

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:

NameTypeAttributeDescription
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:

NameTypeAttributeDescription
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:

NameTypeAttributeDescription
quarters number

the quarters to subtract, positive or negative

Return:

Quarter

the resulting quarter, not null

public name(): string source

Return:

string

public ordinal(): number source

Return:

number

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:

NameTypeAttributeDescription
quarters number

the quarters to add, positive or negative

Return:

Quarter

the resulting quarter, not null

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:

NameTypeAttributeDescription
query TemporalQuery

the query to invoke, not null

Return:

*

the query result, null may be returned (defined by the query)

Throw:

DateTimeException

if unable to query (defined by the query)

ArithmeticException

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:

NameTypeAttributeDescription
field TemporalField

the field to query the range for, not null

Return:

ValueRange

the range of valid values for the field, not null

Throw:

DateTimeException

if the range for the field cannot be obtained

UnsupportedTemporalTypeException

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)