Home Reference Source Repository
import {Month} from 'js-joda/src/Month.js'
public class | source

Month

Extends:

TemporalAccessorTemporal → Month

A month-of-year, such as 'July'.

Month is representing the 12 months of the year - January, February, March, April, May, June, July, August, September, October, November and December.

In addition to the textual name, each month-of-year has an {@code int} value. The {@code int} value follows normal usage and the ISO-8601 standard, from 1 (January) to 12 (December). It is recommended that applications use the static values defined by this class rather than the {@code int} value to ensure code clarity.

This class represents a common concept that is found in many calendar systems. As such, this class may be used by any calendar system that has the month-of-year concept defined exactly equivalent to the ISO-8601 calendar system.

Static properties of Class Month

Month.JANUARY, Month.FEBRUARY, Month.MARCH, Month.APRIL, Month.MAY, Month.JUNE, Month.JULY, Month.AUGUST, Month.SEPTEMBER, Month.OCTOBER, Month.NOVEMBER, Month.DECEMBER

Static Method Summary

Static Public Methods
public static

of(month: number): Month

public static

values(): Month[]

replacement for enum values

Constructor Summary

Public Constructor
public

Method Summary

Public Methods
public

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

public

Gets the day-of-year corresponding to the first day of this month.

public

Gets the month corresponding to the first month of this quarter.

public

Gets the value of the specified field from this month-of-year as an {@code int}.

public

Gets the value of the specified field from this month-of-year as a {@code long}.

public

Checks if the specified field is supported.

public

length(leapYear: boolean): number

Gets the length of this month in days.

public

Gets the maximum length of this month in days.

public

Gets the minimum length of this month in days.

public

minus(months: number): Month

Returns the month-of-year that is the specified number of months before this one.

public

plus(months: number): Month

Returns the month-of-year that is the specified number of months after this one.

public

query(query: TemporalQuery): *

Queries this month-of-year using the specified query.

public

toString implementation...

public

Inherited Summary

From class TemporalAccessor
public

Gets the value of the specified field as an {@code int}.

public

query(query: TemporalQuery): *

Queries this date-time.

public

Gets the range of valid values for the specified field.

Static Public Methods

public static of(month: number): Month source

Params:

NameTypeAttributeDescription
month number

Return:

Month

not null

public static values(): Month[] source

replacement for enum values

Return:

Month[]

Public Constructors

public constructor(value: number) source

Params:

NameTypeAttributeDescription
value number

Public Methods

public adjustInto(temporal: Temporal): Temporal source

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

This returns a temporal object of the same observable type as the input with the month-of-year changed to be the same as this.

The adjustment is equivalent to using {@link Temporal#with(TemporalField, long)} passing ChronoField#MONTH_OF_YEAR as the field. If the specified temporal object does not use the ISO calendar system then a {@code DateTimeException} is thrown.

In most cases, it is clearer to reverse the calling pattern by using {@link Temporal#with(TemporalAdjuster)}:

  // these two lines are equivalent, but the second approach is recommended
  temporal = thisMonth.adjustInto(temporal);
  temporal = temporal.with(thisMonth);

For example, given a date in May, the following are output:

  dateInMay.with(JANUARY);    // four months earlier
  dateInMay.with(APRIL);      // one months earlier
  dateInMay.with(MAY);        // same date
  dateInMay.with(JUNE);       // one month later
  dateInMay.with(DECEMBER);   // seven 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 firstDayOfYear(leapYear: boolean): number source

Gets the day-of-year corresponding to the first day of this month.

This returns the day-of-year that this month begins on, using the leap year flag to determine the length of February.

Params:

NameTypeAttributeDescription
leapYear boolean

true if the length is required for a leap year

Return:

number

the day of year corresponding to the first day of this month, from 1 to 336

public firstMonthOfQuarter(): Month source

Gets the month corresponding to the first month of this quarter.

The year can be divided into four quarters. This method returns the first month of the quarter for the base month. January, February and March return January. April, May and June return April. July, August and September return July. October, November and December return October.

Return:

Month

the first month of the quarter corresponding to this month, not null

public get(field: TemporalField): Number source

Gets the value of the specified field from this month-of-year as an {@code int}.

This queries this month for the value of 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 {@link ChronoField#MONTH_OF_YEAR MONTH_OF_YEAR} then the value of the month-of-year, from 1 to 12, will be returned. All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}.

If the field is not a {@code ChronoField}, then the result of this method is obtained by invoking {@code TemporalField.getFrom(TemporalAccessor)} passing {@code this} as the argument. Whether the value can be obtained, and what the value represents, is determined by the field.

Override:

TemporalAccessor#get

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 {@code int}

*

ArithmeticException if numeric overflow occurs

public getLong(field: TemporalField): Number source

Gets the value of the specified field from this month-of-year as a {@code long}.

This queries this month for the value of 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 ChronoField#MONTH_OF_YEAR MONTH_OF_YEAR} then the value of the month-of-year, from 1 to 12, will be returned. All other {@code ChronoField} instances will throw an {@code UnsupportedTemporalTypeException}.

If the field is not a {@code ChronoField}, then the result of this method is obtained by invoking {@code TemporalField.getFrom(TemporalAccessor)} passing {@code 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 isSupported(field: TemporalField): boolean source

Checks if the specified field is supported.

This checks if this month-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 ChronoField#MONTH_OF_YEAR MONTH_OF_YEAR} then this method returns true. All other {@code ChronoField} instances will return false.

If the field is not a {@code ChronoField}, then the result of this method is obtained by invoking {@code TemporalField.isSupportedBy(TemporalAccessor)} passing {@code 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 month-of-year, false if not

public length(leapYear: boolean): number source

Gets the length of this month in days.

This takes a flag to determine whether to return the length for a leap year or not.

February has 28 days in a standard year and 29 days in a leap year. April, June, September and November have 30 days. All other months have 31 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 28 to 31

public maxLength(): number source

Gets the maximum length of this month in days.

February has a maximum length of 29 days. April, June, September and November have 30 days. All other months have 31 days.

Return:

number

the maximum length of this month in days, from 29 to 31

public minLength(): number source

Gets the minimum length of this month in days.

February has a minimum length of 28 days. April, June, September and November have 30 days. All other months have 31 days.

Return:

number

the minimum length of this month in days, from 28 to 31

public minus(months: number): Month source

Returns the month-of-year that is the specified number of months before this one.

The calculation rolls around the start of the year from January to December. The specified period may be negative.

This instance is immutable and unaffected by this method call.

Params:

NameTypeAttributeDescription
months number

the months to subtract, positive or negative

Return:

Month

the resulting month, not null

public plus(months: number): Month source

Returns the month-of-year that is the specified number of months after this one.

The calculation rolls around the end of the year from December to January. The specified period may be negative.

This instance is immutable and unaffected by this method call.

Params:

NameTypeAttributeDescription
months number

the months to add, positive or negative

Return:

Month

the resulting month, not null

public query(query: TemporalQuery): * source

Queries this month-of-year using the specified query.

This queries this month-of-year using the specified query strategy object. The {@code 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 {@code this} as the argument.

Override:

TemporalAccessor#query

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 toString(): String source

toString implementation... in JDK this is inherited from the Enum class

Return:

String

public value(): number source

Return:

number

gets the value