View Source Cldr.Calendar.ISOWeek (Cldr Calendars v1.26.1)

Implements the ISO Week calendar.

The ISO Week calendar manages dates in a yyyy-ww-dd format with each year having either 52 or 53 weeks.

Summary

Functions

Adds a :year, :month, :day or time increments

Identifies that the calendar is 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 {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 week from the given year, month, and day. It is an integer from 1 to 7, where 1 is Monday and 7 is Sunday.

Calculates the day of the year from the given year, month, and day. It is an integer from 1 to 366.

Returns how many days there are in the given month.

Returns how many days there are in the given year-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.

Returns the number of iso_days that is the first day of the given year for this calendar.

Calculates the ISO week of the year from the given year, month, and day. It is an integer from 1 to 53.

Returns the number of iso_days that is the last day of the given year for this calendar.

Returns if the given year is a leap year.

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

Calculates the month of the year from the given year, month, and day. It is an integer from 1 to 12.

Converts the Calendar.iso_days/0 format to the datetime format specified by this calendar.

Calculates the number of period 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.

Calculates the quarter of the year from the given year, month, and day. It is an integer from 1 to 4.

Returns the related gregorian year as displayed on rendered calendars.

Shifts a date by given duration.

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

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

Calculates the week of the month from the given year, month, and day. It is an integer from 1 to 5.

Calculates the week of the year from the given year, month, and day. It is an integer from 1 to 53.

Returns the number weeks in a given year.

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

Calculates the year and era from the given year. The ISO calendar has two eras: the current era which starts in year 1 and is defined as era "1". And a second era for those years less than 1 defined as era "0".

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

Functions

Link to this function

add(year, month, day, hour, minute, second, microsecond, atom, step)

View Source

Adds a :year, :month, :day or time increments

These functions support CalendarInterval

Identifies that the calendar is week based.

Link to this function

calendar_year(year, week, day)

View Source
@spec calendar_year(
  year :: Cldr.Calendar.year(),
  week :: Cldr.Calendar.week(),
  day :: Cldr.Calendar.day()
) :: year :: Calendar.year() | {:error, {module(), String.t()}}

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. Currently only :gregorian is supported.

Link to this function

cyclic_year(year, week, day)

View Source
@spec cyclic_year(
  year :: Cldr.Calendar.year(),
  week :: Cldr.Calendar.week(),
  day :: Cldr.Calendar.day()
) :: year :: Calendar.year() | {:error, {module(), String.t()}}

Returns the cyclic year as displayed on rendered calendars.

Link to this function

date_from_iso_days(iso_days)

View Source

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

Link to this function

date_to_iso_days(year, week, 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, week, day)

View Source
@spec day_of_era(Cldr.Calendar.year(), Cldr.Calendar.month(), Cldr.Calendar.day()) ::
  {day :: Cldr.Calendar.day(), era :: Cldr.Calendar.era()}
  | {:error, {module(), String.t()}}

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

Link to this function

day_of_week(year, month, day, atom)

View Source
@spec day_of_week(
  year :: Cldr.Calendar.year(),
  month :: Cldr.Calendar.month(),
  Cldr.Calendar.day(),
  :default | atom()
) ::
  {day_of_week :: Calendar.day_of_week(),
   first_day_of_week :: Calendar.day_of_week(),
   last_day_of_week :: Calendar.day_of_week()}
  | {:error, {module(), String.t()}}

Calculates the day of the week from the given year, month, and day. It is an integer from 1 to 7, where 1 is Monday and 7 is Sunday.

Link to this function

day_of_year(year, week, day)

View Source
@spec day_of_year(Cldr.Calendar.year(), Cldr.Calendar.month(), Cldr.Calendar.day()) ::
  day :: Calendar.day() | {:error, {module(), String.t()}}

Calculates the day of the year from the given year, month, and day. It is an integer from 1 to 366.

@spec days_in_month(month :: Cldr.Calendar.month()) ::
  days ::
  Calendar.day()
  | {:error, {module(), String.t()}}
  | {:ambiguous, Range.t()}
  | {:ambiguous, [integer(), ...]}

Returns how many days there are in the given month.

If the days in month cannot be determined without knowning the year and error tuple is returned.

Link to this function

days_in_month(year, month)

View Source
@spec days_in_month(year :: Cldr.Calendar.year(), month :: Cldr.Calendar.month()) ::
  days ::
  Calendar.day()
  | {:error, {module(), String.t()}}
  | {:ambiguous, Range.t()}
  | {:ambiguous, [integer(), ...]}

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

Returns the number days in a a week.

@spec days_in_year(year :: Cldr.Calendar.year()) ::
  days :: Calendar.day() | {:error, {module(), String.t()}}

Returns the number days in a given year.

Link to this function

extended_year(year, week, day)

View Source
@spec extended_year(
  year :: Cldr.Calendar.year(),
  week :: Cldr.Calendar.week(),
  day :: Cldr.Calendar.day()
) :: year :: Calendar.year() | {:error, {module(), String.t()}}

Returns the extended year as displayed on rendered calendars.

Link to this function

first_gregorian_day_of_year(year)

View Source

Returns the number of iso_days that is the first day of the given year for this calendar.

Link to this function

iso_week_of_year(year, week, day)

View Source
@spec iso_week_of_year(
  Cldr.Calendar.year(),
  Cldr.Calendar.month(),
  Cldr.Calendar.day()
) ::
  {year :: Calendar.year(), week :: Cldr.Calendar.week()}
  | {:error, {module(), String.t()}}

Calculates the ISO week of the year from the given year, month, and day. It is an integer from 1 to 53.

Link to this function

last_gregorian_day_of_year(year)

View Source

Returns the number of iso_days that is the last day of the given year for this calendar.

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

Returns if the given year is a leap year.

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

Link to this function

month_of_year(year, week, day)

View Source
@spec month_of_year(
  year :: Cldr.Calendar.year(),
  week :: Cldr.Calendar.week(),
  day :: Cldr.Calendar.day()
) :: month :: Calendar.month() | {:error, {module(), String.t()}}

Calculates the month of the year from the given year, month, and day. It is an integer from 1 to 12.

Link to this function

naive_datetime_from_iso_days(arg)

View Source

Converts the Calendar.iso_days/0 format to the datetime format specified by this calendar.

Link to this function

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

View Source

Returns the Calendar.iso_days/0 format of the specified date.

@spec periods_in_year(year :: Cldr.Calendar.year()) :: Calendar.week() | :error

Calculates the number of period 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 :years, :quarters, :months or days.

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

Link to this function

quarter_of_year(year, week, day)

View Source
@spec quarter_of_year(
  year :: Cldr.Calendar.year(),
  week :: Cldr.Calendar.week(),
  day :: Cldr.Calendar.day()
) :: quarter :: Cldr.Calendar.quarter() | {:error, {module(), String.t()}}

Calculates the quarter of the year from the given year, month, and day. It is an integer from 1 to 4.

Link to this function

shift_date(year, month, day, duration)

View Source

Shifts a date by given duration.

Link to this function

shift_naive_datetime(year, month, day, hour, minute, second, microsecond, duration)

View Source

Shifts a naive date time by given duration.

Link to this function

shift_time(hour, minute, second, microsecond, duration)

View Source

Shifts a time by given duration.

Link to this function

valid_date?(year, week, day)

View Source

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

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

Link to this function

week_of_month(year, week, day)

View Source
@spec week_of_month(Cldr.Calendar.year(), Cldr.Calendar.week(), Calendar.day()) ::
  {month :: Calendar.month(), week :: Cldr.Calendar.week()}
  | {:error, {module(), String.t()}}

Calculates the week of the month from the given year, month, and day. It is an integer from 1 to 5.

Link to this function

week_of_year(year, week, day)

View Source
@spec week_of_year(Cldr.Calendar.year(), Cldr.Calendar.month(), Cldr.Calendar.day()) ::
  {year :: Calendar.year(), week :: Cldr.Calendar.week()}
  | {:error, {module(), String.t()}}

Calculates the week of the year from the given year, month, and day. It is an integer from 1 to 53.

@spec weeks_in_year(year :: Cldr.Calendar.year()) ::
  {weeks :: Calendar.week(), days_in_last_week :: Calendar.day()}
  | {:error, {module(), String.t()}}

Returns the number weeks in a given year.

Arguments

Returns

  • {weeks_in_year, days_in_last_week}

Example

iex> Cldr.Calendar.ISOWeek.weeks_in_year 2020
{53, 7}

iex> Cldr.Calendar.ISOWeek.weeks_in_year 2021
{52, 7

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

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

Calculates the year and era from the given year. The ISO calendar has two eras: the current era which starts in year 1 and is defined as era "1". And a second era for those years less than 1 defined as era "0".

Link to this function

year_of_era(year, week, day)

View Source
@spec year_of_era(
  year :: Cldr.Calendar.year(),
  week :: Cldr.Calendar.week(),
  day :: Cldr.Calendar.day()
) ::
  {year :: Calendar.year(), era :: Cldr.Calendar.era()}
  | {:error, {module(), String.t()}}

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

The ISO calendar has two eras: the current era which starts in year 1 and is defined as era "1". And a second era for those years less than 1 defined as era "0".