View Source Cldr.Calendar.Persian (ex_cldr_calendars_persian v1.1.0)

The present Iranian calendar was legally adopted on 31 March 1925, under the early Pahlavi dynasty. The law said that the first day of the year should be the first day of spring in "the true solar year", "as it has been" ever so. It also fixes the number of days in each month, which previously varied by year with the sidereal zodiac.

It revived the ancient Persian names, which are still used. It specifies the origin of the calendar to be the Hegira of Muhammad from Mecca to Medina in 622 CE).

Summary

Functions

Identifies whether this calendar is month or week based.

Returns the calendar year as displayed on rendered calendars.

Defines the CLDR calendar type for this calendar.

Returns the cyclic year as displayed on rendered calendars.

Returns a {year, month, day} calculated from the number of iso_days.

Returns the number of days since the calendar epoch for a given year-month-day

Calculates the day and era from the given year, month, and day.

Calculates the day of the year from the given year, month, and day.

Returns how many days there are in the given month.

Returns how many days there are in the given year and month.

Returns the number days in a a week.

Returns the number days in a given year.

Returns the extended year as displayed on rendered calendars.

Calculates the ISO week of the year from the given year, month, and day.

Returns if the given year is a leap year.

Returns a Date.Range.t representing a given month of a year.

Returns the month of the year from the given year, month, and day.

Returns the number of months in a leap year.

Returns the number of months in a normal year.

Returns the number of months in a given year.

Converts the t:Calendar.iso_days format to the datetime format specified by this calendar.

Returns the t:Calendar.iso_days format of the specified date.

Returns the Gregorian date of the Persian new year for a given Gregorian year

Returns the number of periods in a given year. A period corresponds to a month in month-based calendars and a week in week-based calendars.

Adds an increment number of date_parts to a year-month-day.

Returns a Date.Range.t representing a given quarter of a year.

Returns the quarter of the year from the given year, month, and day.

Returns the related gregorain year as displayed on rendered calendars.

Determines if the date given is valid according to this calendar.

Returns a Date.Range.t representing a given week of a year.

Calculates the week of the year from the given year, month, and day.

Calculates the week of the year from the given year, month, and day.

Returns the number of weeks in a given year.

Returns a Date.Range.t representing a given year.

Returns the Gregorian date of the Persian last day of a given Gregorian year

Calculates the year and era from the given year.

Calculates the year and era from the given date.

Functions

Identifies whether this calendar is month or week based.

Link to this function

calendar_year(year, month, day)

View Source
@spec calendar_year(Calendar.year(), Calendar.month(), Calendar.day()) ::
  Calendar.year()

Returns the calendar year as displayed on rendered calendars.

Defines the CLDR calendar type for this calendar.

This type is used in support of Cldr.Calendar. localize/3.

Link to this function

cyclic_year(year, month, day)

View Source
@spec cyclic_year(Calendar.year(), Calendar.month(), Calendar.day()) ::
  Calendar.year()

Returns the cyclic year as displayed on rendered calendars.

Link to this function

date_from_iso_days(iso_days)

View Source

Returns a {year, month, day} calculated from the number of iso_days.

Link to this function

date_to_iso_days(year, month, day)

View Source

Returns the number of days since the calendar epoch for a given year-month-day

Link to this function

day_of_era(year, month, day)

View Source
@spec day_of_era(Calendar.year(), Calendar.month(), Calendar.day()) ::
  {day :: Calendar.day(), era :: Calendar.era()}

Calculates the day and era from the given year, month, and day.

By default we consider on two eras: before the epoch and on-or-after the epoch.

Link to this function

day_of_year(year, month, day)

View Source
@spec day_of_year(Calendar.year(), Calendar.month(), Calendar.day()) :: Calendar.day()

Calculates the day of the year from the given year, month, and day.

@spec days_in_month(Calendar.month()) ::
  Calendar.month()
  | {:ambiguous, Range.t() | [pos_integer()]}
  | {:error, :undefined}

Returns how many days there are in the given month.

Must be implemented in derived calendars because we cannot know what the calendar format is.

Link to this function

days_in_month(year, month)

View Source
@spec days_in_month(Calendar.year(), Calendar.month()) :: Calendar.month()

Returns how many days there are in the given year and month.

Returns the number days in a a week.

Returns the number days in a given year.

The year is the number of years since the epoch.

Link to this function

extended_year(year, month, day)

View Source
@spec extended_year(Calendar.year(), Calendar.month(), Calendar.day()) ::
  Calendar.year()

Returns the extended year as displayed on rendered calendars.

Link to this function

iso_week_of_year(year, month, day)

View Source
@spec iso_week_of_year(Calendar.year(), Calendar.month(), Calendar.day()) ::
  {:error, :not_defined}

Calculates the ISO week of the year from the given year, month, and day.

By default this function always returns {:error, :not_defined}.

@spec leap_year?(Calendar.year()) :: boolean()

Returns if the given year is a leap year.

Since this calendar is observational we calculate the start of successive years and then calcualate the difference in days to determine if its a leap year.

Returns a Date.Range.t representing a given month of a year.

Link to this function

month_of_year(year, month, day)

View Source

Returns the month of the year from the given year, month, and day.

Returns the number of months in a leap year.

Link to this function

months_in_ordinary_year()

View Source

Returns the number of months in a normal year.

Returns the number of months in a given year.

Link to this function

naive_datetime_from_iso_days(arg)

View Source

Converts the t:Calendar.iso_days format to the datetime format specified by this calendar.

Link to this function

naive_datetime_to_iso_days(year, month, day, hour, minute, second, microsecond)

View Source

Returns the t:Calendar.iso_days format of the specified date.

Link to this function

new_year_gregorian(year)

View Source

Returns the Gregorian date of the Persian new year for a given Gregorian year

Link to this function

new_year_on_or_before(iso_days)

View Source

Returns the number of periods in a given year. A period corresponds to a month in month-based calendars and a week in week-based calendars.

Link to this function

plus(year, month, day, date_part, increment, options \\ [])

View Source

Adds an increment number of date_parts to a year-month-day.

date_part can be :months only.

Returns a Date.Range.t representing a given quarter of a year.

Link to this function

quarter_of_year(year, month, day)

View Source
@spec quarter_of_year(Calendar.year(), Calendar.month(), Calendar.day()) ::
  Cldr.Calendar.quarter()

Returns the quarter of the year from the given year, month, and day.

Link to this function

valid_date?(year, month, day)

View Source

Determines if the date given is valid according to this calendar.

Returns a Date.Range.t representing a given week of a year.

Link to this function

week_of_month(year, month, day)

View Source
@spec week_of_month(Calendar.year(), Calendar.month(), Calendar.day()) ::
  {pos_integer(), pos_integer()} | {:error, :not_defined}

Calculates the week of the year from the given year, month, and day.

By default this function always returns {:error, :not_defined}.

Link to this function

week_of_year(year, month, day)

View Source
@spec week_of_year(Calendar.year(), Calendar.month(), Calendar.day()) ::
  {:error, :not_defined}

Calculates the week of the year from the given year, month, and day.

By default this function always returns {:error, :not_defined}.

Returns the number of weeks in a given year.

Returns a Date.Range.t representing a given year.

Link to this function

year_end_gregorian(year)

View Source

Returns the Gregorian date of the Persian last day of a given Gregorian year

@spec year_of_era(Calendar.year()) :: {year :: Calendar.year(), era :: Calendar.era()}

Calculates the year and era from the given year.

Link to this function

year_of_era(year, month, day)

View Source
@spec year_of_era(Calendar.year(), Calendar.month(), Calendar.day()) ::
  {year :: Calendar.year(), era :: Calendar.era()}

Calculates the year and era from the given date.