Home Reference Source
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 int value. The 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 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

Obtains an instance of Month from a temporal object.

public static

of(month: number): Month

public static

values(): Month[]

replacement for enum values

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

public

getDisplayName(style: TextStyle, locale: Locale): string

Gets the textual representation, such as 'Jan' or 'December'.

public

Gets the value of the specified field from this month-of-year as a 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

toJSON() use by JSON.stringify delegates to toString()

public

toString implementation...

public

Inherited Summary

From class TemporalAccessor
public

Gets the value of the specified field as an 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 from(temporal: TemporalAccessor): Month source

Obtains an instance of Month from a temporal object.

This obtains a month based on the specified temporal. A TemporalAccessor represents an arbitrary set of date and time information, which this factory converts to an instance of Month.

The conversion extracts the MONTH_OF_YEAR (see ChronoField#MONTH_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, Month::from.

Params:

NameTypeAttributeDescription
temporal TemporalAccessor

the temporal object to convert, not null

Return:

Month

the month-of-year, not null

Throw:

*

DateTimeException if unable to convert to a Month

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 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 Temporal#with passing ChronoField#MONTH_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 = 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 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 MONTH_OF_YEAR (see ChronoField#MONTH_OF_YEAR) then the value of the month-of-year, from 1 to 12, 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 passing 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 int

*

ArithmeticException if numeric overflow occurs

public getDisplayName(style: TextStyle, locale: Locale): string source

Gets the textual representation, such as 'Jan' or 'December'.

This returns the textual name used to identify the month-of-year. The parameters control the length of the returned text and the locale.

If no textual mapping is found then the numeric value (see getValue) 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 getLong(field: TemporalField): Number source

Gets the value of the specified field from this month-of-year as a 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 MONTH_OF_YEAR (see ChronoField#MONTH_OF_YEAR) then the value of the month-of-year, from 1 to 12, 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 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 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 range (see range) and get (see get) methods will throw an exception.

If the field is MONTH_OF_YEAR (see ChronoField#MONTH_OF_YEAR) then this method returns true. All other ChronoField instances will return false.

If the field is not a ChronoField, then the result of this method is obtained by invoking TemporalField.isSupportedBy 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 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 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 TemporalQuery#queryFrom method on the specified query passing 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 toJSON(): string source

toJSON() use by JSON.stringify delegates to toString()

Return:

string

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