Cldr.Calendar.plus
You're seeing just the function
plus
, go back to Cldr.Calendar module for more information.
Specs
plus(integer(), integer()) :: integer()
plus(Calendar.date(), Cldr.Calendar.Duration.t()) :: Calendar.date()
Adds a duration to a date
Arguments
date
is any map that conforms toCalendar.date()
duration
is any duration returned byCldr.Calendar.Duration.new!/2
options
is a Keyword list of options
Options
- Options are those applicatable to
Cldr.Calendar.plus/4
Returns
- A
date
advanced by the duration
Examples
iex> Cldr.Calendar.plus ~D[2020-01-01],
...> Cldr.Calendar.Duration.new!(~D[2020-01-01], ~D[2020-02-01])
~D[2020-02-01]
iex> Cldr.Calendar.plus ~D[2020-01-01],
...> Cldr.Calendar.Duration.new!(~D[2020-01-01], ~D[2020-01-02])
~D[2020-01-02]
iex> Cldr.Calendar.plus ~D[2020-01-01],
...> Cldr.Calendar.Duration.new!(~D[2020-01-01], ~D[2020-02-01])
~D[2020-02-01]
iex> Cldr.Calendar.plus ~D[2020-01-01],
...> Cldr.Calendar.Duration.new!(~D[2020-01-01], ~D[2021-02-01])
~D[2021-02-01]
Specs
plus(Calendar.date() | Date.Range.t(), atom(), integer(), Keyword.t()) :: Calendar.date()
Increments a date or date range by an integer amount of a date period (year, quarter, month, week or day).
Arguments
date_or_date_range
is anyDate.t
orDate.Range.t
period
is:year
,:quarter
,:month
,:week
or:day
options
is a Keyword list of options
Options
:coerce
is a boolean which, when set totrue
will coerce the month and/or day to be a valid date. This affects,for example, moving to the previous month from~D[2019-03-31]
. Sincce there is no date~D[2019-02-31]
this would normally return{:error, :invalid_date}
. Settingcoerce: true
it will return~D[2019-02-28]
.
Returns
When a Date.t
is passed, a Date.t
is
returned. When a Date.Range.t
is passed
a Date.Range.t
is returned.
Examples
iex> Cldr.Calendar.plus ~D[2016-02-29], :days, 1
~D[2016-03-01]
iex> Cldr.Calendar.plus ~D[2019-03-01], :months, 1
~D[2019-04-01]
iex> Cldr.Calendar.plus ~D[2016-02-29], :days, 1
~D[2016-03-01]
iex> Cldr.Calendar.plus ~D[2019-02-28], :days, 1
~D[2019-03-01]
iex> Cldr.Calendar.plus ~D[2019-03-01], :months, 1
~D[2019-04-01]
iex> Cldr.Calendar.plus ~D[2019-03-01], :quarters, 1
~D[2019-06-01]
iex> Cldr.Calendar.plus ~D[2019-03-01], :years, 1
~D[2020-03-01]