Cldr.Calendar.plus

You're seeing just the function plus, go back to Cldr.Calendar module for more information.

Specs

Adds a duration to a date

Arguments

  • date is any map that conforms to Calendar.date()

  • duration is any duration returned by Cldr.Calendar.Duration.new!/2

  • options is a Keyword list of options

Options

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]
Link to this function

plus(date, duration, options)

View Source
Link to this function

plus(date, period, increment, options \\ [])

View Source

Specs

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 any Date.t or Date.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 to true 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}. Setting coerce: 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]