View Source Cldr.Calendar.NRF (Cldr Calendars v1.26.1)
Implements the US National Retail Federation (NRF) calendar.
The NRF calendar is defined to end on the last Saturday of January.
This week-based approach allows for easier comparison of seasonal business performance with most US seasonal holidays falling into the same week of the year.
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.
Returns the Calendar.iso_days/0
format of the specified date.
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_part
s
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.
Shifts a naive date time by given duration.
Shifts a time 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
add(year, month, day, hour, minute, second, microsecond, atom, step)
View SourceAdds a :year, :month, :day or time increments
These functions support CalendarInterval
Identifies that the calendar is week based.
@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.
@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.
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
@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
.
@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.
@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.
@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.
@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.
Returns the number of iso_days
that is
the first day of the given
year for this calendar.
@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.
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.
@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.
@spec naive_datetime_from_iso_days(Calendar.iso_days()) :: {Calendar.year(), Calendar.month(), Calendar.day(), Calendar.hour(), Calendar.minute(), Calendar.second(), Calendar.microsecond()}
Converts the Calendar.iso_days/0
format to the datetime format specified by this calendar.
naive_datetime_to_iso_days(year, week, day, hour, minute, second, microsecond)
View Source@spec naive_datetime_to_iso_days( Calendar.year(), Calendar.month(), Calendar.day(), Calendar.hour(), Calendar.minute(), Calendar.second(), Calendar.microsecond() ) :: Calendar.iso_days()
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..
Adds an increment
number of date_part
s
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.
@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.
@spec shift_date(Calendar.year(), Calendar.month(), Calendar.day(), Duration.t()) :: {Calendar.year(), Calendar.month(), Calendar.day()}
Shifts a date by given duration.
shift_naive_datetime(year, month, day, hour, minute, second, microsecond, duration)
View Source@spec shift_naive_datetime( Calendar.year(), Calendar.month(), Calendar.day(), Calendar.hour(), Calendar.minute(), Calendar.second(), Calendar.microsecond(), Duration.t() ) :: {Calendar.year(), Calendar.month(), Calendar.day(), Calendar.hour(), Calendar.minute(), Calendar.second(), Calendar.microsecond()}
Shifts a naive date time by given duration.
@spec shift_time( Calendar.hour(), Calendar.minute(), Calendar.second(), Calendar.microsecond(), Duration.t() ) :: {Calendar.hour(), Calendar.minute(), Calendar.second(), Calendar.microsecond()}
Shifts a time 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.
@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.
@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
year
is anyCalendar.year/0
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".
@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".