Note that ex_cldr_calendars
version 1.24.0 and later are supported on Elixir 1.12 and later only.
This is the changelog for Cldr Calendars v1.26.2 released on September 12th, 2024. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Calendar.Interval.compare/2
when the ranges overlap by one day. Thanks to @ArthurClemens for the report. Fixes #22.
This is the changelog for Cldr Calendars v1.26.1 released on August 16th, 2024. For older changelogs please consult the release tag on GitHub
- Fix specs to suport dialyzer flags
:error_handling, :unknown, :underspecs, :extra_return, :missing_return
This is the changelog for Cldr Calendars v1.26.0 released on July 27th, 2024. For older changelogs please consult the release tag on GitHub
- Microseconds in
t:Cldr.Calendar.Duration.t/0
now follow thet:Time.t/0
expectations.
- Adds
Cldr.Calendar.Duration.new_from_seconds/1
This is the changelog for Cldr Calendars v1.25.2 released on July 9th, 2024. For older changelogs please consult the release tag on GitHub
- Fix spec for
Cldr.Calendar.localize/{1,2,3}
again - the return type was being aliased and hence dialyzer was unhappy. Not always, just sometimes.
This is the changelog for Cldr Calendars v1.25.1 released on July 7th, 2024. For older changelogs please consult the release tag on GitHub
- Fix spec for
Cldr.Calendar.localize/{1,2,3}
to use the more expansive date/time/datetime types fromCldr.Calendar
.
This is the changelog for Cldr Calendars v1.25.0 released on July 7th, 2024. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Calendar.Preference.calendar_from_locale/1
when-u-ca-<calendar>
is specified as part of the locale.
-
This release provides initial support for partial dates. Partial dates are those that do not have all of the fields
:year
,:month
,:day
and:calendar
. Not all functions require all parts of a date. And in some cases, like formatting just the year and the month, it shouldn't be necessary to provide data that has no use. Of course many functions do require all fields be present - like adding a number of days to a date. In these cases, missing fields will cause an error to be returned.ex_cldr_dates_times
version 2.19.0 and later take advantage of partial dates when formatting. -
Support
Cldr.Calendar.localize/3
optionera: :variant
to return an alternative localization. For instance, in the:en
locale, this will returnCE
andBCE
rather than the defaultAD
andBC
. -
Add
MyApp.Cldr.Calendar.localize/3
that delegates toCldr.Calendar.localize/3
.
This is the changelog for Cldr Calendars v1.24.2 released on June 22nd, 2024. For older changelogs please consult the release tag on GitHub
- Fix runtime warning about
map.field
notation without parens when calling a function on Elixir 1.17.
This is the changelog for Cldr Calendars v1.24.1 released on June 21st, 2024. For older changelogs please consult the release tag on GitHub
- Compile on Elixir releases < 1.17. Some code in
Cldr.Calendar
depends on the newt:Duration.t/0
struct which is only available on Elixir 1.17 or later. Elixir 1.16 is now added to the CI test matrix to ensure no future regression. Thanks to @WernerBuchert for the report. Closes #21.
This is the changelog for Cldr Calendars v1.24.0 released on June 21st, 2024. For older changelogs please consult the release tag on GitHub
- Fix compiler warnings for Elixir 1.17.
- Adds new calendar callbacks
Calendar.shift_date/4
,Calendar.shift_time/5
andCalendar.shift_naive_datetime/8
supported in Elixir 1.17.
This is the changelog for Cldr Calendars v1.23.1 released on March 1st, 2024. For older changelogs please consult the release tag on GitHub
-
Cldr.Calendar.plus/4
consistently applies a default for the:coerce
option toCldr.Calendar.plus/4
andCldr.Calendar.minus/4
. The default istrue
. Previously the default for plus/minus months wastrue
but the default for years wasfalse
. Thanks to @linusdm for raising the issue. -
Fix specs for
Cldr.Calendar.localize/{1..3}
. Thanks to @alappe for raising the issue. Closes #15.
This is the changelog for Cldr Calendars v1.23.0 released on December 16th, 2023. For older changelogs please consult the release tag on GitHub
Note that ex_cldr_calendars
version 1.21.1 and later are supported on Elixir 1.11 and later only.
Cldr.Calendar.weeks_in_year/1
now returns a tuple of the form{weeks_in_year, days_in_last_week}
instead of an integer value. In particular for Gregorian based calendars, the value ofweeks_in_year
will be 53 and the value ofdays_last_week
will be either1
or2
depending on whether it is a leap year or not.
-
Adds
:week
and:day
to the options for<calendar>.plus/5
. These are in addition to the already existing:year
,:quarter
and:month
options. This addition is primarily to support tempo. This enhancement has no affect on the public API in theCldr.Calendar
module. The bump in minor release number is to allow fortempo
to target the appropriate version in a semver compatible manner. -
Adds
Cldr.Calendar.ISO
which is a month-based calendar with weeks that start on Monday and the first week must have at least 4 days of the current year in it. This aligns to the ISO8601 standard and is the month-based counterpart to the week-basedCldr.Calendar.ISOWeek
calendar already included inex_cldr_calendars
.
This is the changelog for Cldr Calendars v1.22.1 released on July 4th 2023. For older changelogs please consult the release tag on GitHub
Note that ex_cldr_calendars
version 1.21.1 and later are supported on Elixir 1.11 and later only.
- Compatibility with the
Calendar
behaviour changes in Elixir 1.15.
This is the changelog for Cldr Calendars v1.22.0 released on April 28th 2023. For older changelogs please consult the release tag on GitHub
Note that ex_cldr_calendars
version 1.21.1 and later are supported on Elixir 1.11 and later only.
- Fixes localization of leap months which are used in lunisolar calendars.
-
Updates to ex_cldr version 2.37.0 which includes data from CLDR release 43
-
Supports configuring the
:cldr_calendar_name
for a calendar that is defined with theCldr.Calendar.Base.{Month, Week}
macros. The options can be:gregorian
(the default) or:japanese
. This change supports the newex_cldr_calendars_japanese
library.
This is the changelog for Cldr Calendars v1.21.0 released on October 24th, 2022. For older changelogs please consult the release tag on GitHub
- Adds modified Julian days conversions. Thanks to @polvalente for the PR. Closes #14.
This is the changelog for Cldr Calendars v1.20.0 released on September 21st, 2022. For older changelogs please consult the release tag on GitHub
-
Doctests now reflect the new expression based inspection outputs in Elixir 1.14 for
t:Date.Range.t()
-
Improve the documentation for periods. Thanks to @alappe for the pull requests.
-
Add
Cldr.Calendar.date_from_list/2
that takes a keyword list of time units and returns at:Date.t/0
-
Add
Cldr.Calendar.date_from_day_of_year/3
that returns at:Date.t/0
for the ordinal day of the year.
This is the changelog for Cldr Calendars v1.19.0 released on June 9th, 2022. For older changelogs please consult the release tag on GitHub
- Adds
Cldr.Calendar.localize/{1,2}
that converts a date into the calendar associated with the provided locale.
This is the changelog for Cldr Calendars v1.18.1 released on June 5th, 2022. For older changelogs please consult the release tag on GitHub
MyApp.Cldr.Calendar.calendar_from_locale/1
was added to the backend compiler module, not the backend module itself and therefore was not visible.
This is the changelog for Cldr Calendars v1.18.0 released on February 21st, 2022. For older changelogs please consult the release tag on GitHub
- Updates to ex_cldr version 2.26.0 and ex_cldr_numbers version 2.25.0 which use atoms for locale names and rbnf locale names. This is consistent with other elements of
t:Cldr.LanguageTag
where atoms are used when the cardinality of the data is fixed and relatively small and strings where the data is free format.
This is the changelog for Cldr Calendars v1.17.3 released on January 31st, 2021. For older changelogs please consult the release tag on GitHub
- Fix
Kday.nth_kday/3
for when thekday
is the same as the day of the week of the date.
This is the changelog for Cldr Calendars v1.17.2 released on December 26th, 2021. For older changelogs please consult the release tag on GitHub
-
Fixes
Cldr.Calendar.FiscalYear.calendar_for/2
. Thanks for @DaTrader for the report. Closes #10. -
Use
Cldr.Calendar.date_to_iso_days/1
in preference toDate.to_gregorian_days/1
since the latter is only available in Elixir 1.11 and later. Thanks to @DaTrader for the report. Closes #11.
This is the changelog for Cldr Calendars v1.17.1 released on November 1st, 2021. For older changelogs please consult the release tag on GitHub
- Ensure compatibility with Elixir 1.13 by marking the implementations of
Calendar.year_of_era/1
as@impl true
only on releases earlier than Elixir 1.13. In Elixir 1.13 the callback isCalendar.year_of_era/3
.
This is the changelog for Cldr Calendars v1.17.0 released on October 27th, 2021. For older changelogs please consult the release tag on GitHub
-
Updates to support CLDR release 40 via ex_cldr version 2.24
-
Add support for Chinese, Japanese and Korean lunisolar calendars.
-
Adds
Cldr.Calendar.year_of_era/1
that supports eras that might change at any time during a calendar year. This is primarily applicable to the Japanese calendar. -
Add
Cldr.Calendar.Behaviour
that can beuse
d to factor out a lot of calendar boilerplate for many (but not all) calendar types. -
Add
year_of_era/3
as a callback in theCldr.Calendar
behaviour. This is required because at least one calendar (the Japanese) can change era on any day of the year.
- Fix
day_of_week/{3, 4}
to be compatible with Elixir 1.12 and also earlier versions - and ensure dialyzer passes on consuming applications.
- Don't call deprecated
Cldr.Config.known_locale_names/1
, callCldr.Locale.Loader.known_locale_names/1
instead.
This is the changelog for Cldr Calendars v1.17.0-rc.3 released on October 25th, 2021. For older changelogs please consult the release tag on GitHub
- Don't call deprecated
Cldr.Config.known_locale_names/1
, callCldr.Locale.Loader.known_locale_names/1
instead.
This is the changelog for Cldr Calendars v1.17.0-rc.2 released on October 25th, 2021. For older changelogs please consult the release tag on GitHub
- Fix
day_of_week/{3, 4}
to be compatible with Elixir 1.12 and also earlier versions - and ensure dialyzer passes on consuming applications.
This is the changelog for Cldr Calendars v1.17.0-rc.1 released on October 25th, 2021. For older changelogs please consult the release tag on GitHub
- Don't call deprecated
Cldr.Config.get_locale/2
, useCldr.Locale.Loader.get_config/2
instead.
This is the changelog for Cldr Calendars v1.17.0-rc.0 released on October 3rd, 2021. For older changelogs please consult the release tag on GitHub
-
Add support for Chinese, Japanese and Korean lunisolar calendars.
-
Adds
Cldr.Calendar.year_of_era/1
that supports eras that might change at any time during a calendar year. This is primarily applicable to the Japanese calendar. -
Add
Cldr.Calendar.Behaviour
that can beuse
d to factor out a lot of calendar boilerplate for many (but not all) calendar types. -
Add
year_of_era/3
as a callback in theCldr.Calendar
behaviour. This is required because at least one calendar (the Japanese) can change era on any day of the year.
This is the changelog for Cldr Calendars v1.16.0 released on August 27th, 2021. For older changelogs please consult the release tag on GitHub
This release requires a minimum of Elixir 1.10 in line with supporting the current release and the two previous releases. Therefore Elixir 1.10, 1.11 and 1.12 are supported.
- Do not require
ex_cldr_numbers
as a dependency.
This is the changelog for Cldr Calendars v1.15.3 released on August 22nd, 2021. For older changelogs please consult the release tag on GitHub
- Fixes a case when
Cldr.Calendar.Kday.kday_after/1
would return the same date, not the subsequent one.
This is the changelog for Cldr Calendars v1.15.2 released on August 20th, 2021. For older changelogs please consult the release tag on GitHub
- Fix doc errors. Thanks to @maennchen for the report. Doc errors in other
ex_cldr
packages are also updated.
This is the changelog for Cldr Calendars v1.15.1 released on August 8th, 2021. For older changelogs please consult the release tag on GitHub
- Add
Code.ensure_loaded?(Date)
when checking for whether we need to implementDate.day_of_week/3
orDate.day_of_week/4
since this changed from earlier Elixir versions.
This is the changelog for Cldr Calendars v1.15.0 released on July 1st, 2021. For older changelogs please consult the release tag on GitHub
- Updated to ex_cldr version 2.23.0 which has some changes to the valid territories list requiring a change in some tests. This normally wouldn't require a minor version change but doing so makes it easier to target this library as a dependency.
This is the changelog for Cldr Calendars v1.14.1 released on May 17th, 2021. For older changelogs please consult the release tag on GitHub
- Fix
@impl
warnings on Elixir 1.12
This is the changelog for Cldr Calendars v1.14.0 released on April 13th, 2021. For older changelogs please consult the release tag on GitHub
- Support creating time-base durations that are negative in direction. Date and DateTime durations must still be positive durations. For example:
# Create a time-based duration that is negative in direction
iex> {:ok, duration} = Cldr.Calendar.Duration.new ~T[10:00:00.0], ~T[09:00:00.0]
{:ok,
%Cldr.Calendar.Duration{
day: 0,
hour: -1,
microsecond: 0,
minute: 0,
month: 0,
second: 0,
year: 0
}}
This is the changelog for Cldr Calendars v1.13.0 released on April 8th, 2021. For older changelogs please consult the release tag on GitHub
-
Fix creating durations from two
Time
s. -
Add support for CLDR 39 data release
This is the changelog for Cldr Calendars v1.12.1 released on April 7th, 2021. For older changelogs please consult the release tag on GitHub
- Fix a bug that prevented durations being created from times (as apposed to dates and datetimes)
This is the changelog for Cldr Calendars v1.12.0 released on November 8th, 2020. For older changelogs please consult the release tag on GitHub
-
Rename
Cldr.Calendar.Preference.calendar_for_locale/1
toCldr.Calendar.Preference.calendar_from_locale/1
-
Rename
Cldr.Calendar.Preference.calendar_for_territory/1
toCldr.Calendar.Preference.calendar_from_territory/1
-
Add
Cldr.Calendar.calendar_from_territory/1
-
Add
Cldr.Calendar.calendar_from_locale/1,2
This is the changelog for Cldr Calendars v1.11.0 released on November 1st, 2020. For older changelogs please consult the release tag on GitHub
- Add support for CLDR 38
This is the changelog for Cldr Calendars v1.10.1 released on September 26th, 2020. For older changelogs please consult the release tag on GitHub
- Add a shim for
default_backend/0
that delegates toCldr.default_backend/0
orCldr.default_backend!/0
depending onex_cldr
release. Releases from2.18.0
useCldr.default_backend!/0
.
This is the changelog for Cldr Calendars v1.10.0 released on August 29th, 2020. For older changelogs please consult the release tag on GitHub
- Supports upcoming Elixir 1.11.0. The
Calendar
callback forday_of_week/3
has been changed today_of_week/4
to allow for a different start day of week. SinceCldr Calendars
already supports defining calendars with different start days of the week (ie other than Monday), the implementation only supports the:default
parameter. Thanks to @lostkobrakai for the report. ClosesCldr Dates Times
issue #17.
This is the changelog for Cldr Calendars v1.9.0 released on June 7th, 2020. For older changelogs please consult the release tag on GitHub
-
Add
Cldr.Calendar.plus/{3,4}
that allows adding aCldr.Calendar.Duration
to aCalendar.date
. Support for adding durations todatetime
s is not yet available. -
Add support for
datetimes
toCldr.Calendar.Duration.new/2
-
Add support for
Date.Range.t
andCalendarInterval.t
toCldr.Calendar.Duration.new/1
- More complete test coverage on durations with some additional corner case fixes
This is the changelog for Cldr Calendars v1.8.1 released on June 4th, 2020. For older changelogs please consult the release tag on GitHub
- Fix duration calculation when the year and month are the same and the day of the last date is greater than the day of the first date
This is the changelog for Cldr Calendars v1.8.0 released on May 4th, 2020. For older changelogs please consult the release tag on GitHub
- The
min_days_in_first_week
for the calendarCldr.Calendar.Gregorian
is changed to be1
rather than the previous value of4
. This only affects week-related processing for the calendar. The reason for the change is that the majority of territories have a preference for1
formin_days_in_first_week
soCldr.Calendar.Gregorian
more closely aligns to majority expectations.
- The return result from
Cldr.Calendar.new/3
may return{:module_already_exists, module}
. It previously returned{:already_exists, module}
-
Use
backend.get_locale/0
instead ofCldr.get_locale/0
for all options -
Ensure that the default values for a locale's
min_days
andfirst_day_of_week
are correctly applied inCldr.Calendar.new/3
. Any values passed as options take precedence over those defined for a locale.
-
Add
Cldr.Calendar.calendar_for_locale/2
which will create (or return) a gregorian-based calendar configured for the supplied locale. This typically means applying the correct values formin_days
andfirst_day_of_week
. For now all calendars created in this way are Gregorian monthly calendars. -
Add
Cldr.Calendar.Preference.calendar_for_locale/1
which returns the appropriate calendar for a locale based upon locale preferences and configured calendars. UnlikeCldr.Calendar.calendar_for_locale/2
, this function may return non-Gregorian calendars. For example, for the localefa-IR
it will returnCldr.Calendar.Persian
(if ex_cldr_calendars_persian is configured) because that is the locale preference. -
Add
Cldr.Calendar.Preference.calendar_for_territory/1
provides the same result asCldr.Calendar.Preference.calendar_for_locale/2
except that argument is a territory code. -
Add
Cldr.Calendar.Preference.preferences_for_territory/1
-
Add
Cldr.Calendar.validate_calendar/1
which returns{:ok, calendar}
if the argument is aCldr.Calendar
calendar module or{:error, {exception, reason}}
if not.
This is the changelog for Cldr Calendars v1.7.1 released on January 26th, 2020. For older changelogs please consult the release tag on GitHub
- Fix doc link in
MyApp.Cldr.Calendar.strftime_options!/2
This is the changelog for Cldr Calendars v1.7.0 released on January 2nd, 2020. For older changelogs please consult the release tag on GitHub
- Remove call to deprecated
Code.ensure_compiled?/1
in Elixir 1.10
This is the changelog for Cldr Calendars v1.6.0 released on December 9th, 2019. For older changelogs please consult the release tag on GitHub
- Adds support for localizing Persian, Coptic and Ethiopic calendar localization. These calendars are published separately but they rely upon localization support from this package.
This is the changelog for Cldr Calendars v1.5.1 released on November 10th, 2019. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Calendar.next/3
andCldr.Calendar.previous/3
for months with week-based calendars. Thanks to @bglusman for the report. Closes #3. Note that the use of the:coerce
option is recommended in most cases.
This is the changelog for Cldr Calendars v1.5.0 released on November 3rd, 2019. For older changelogs please consult the release tag on GitHub
- Adds
MyApp.Cldr.Calendar.strftime_options!/2
to return a keyword list of options that can be applied toNimbleStrftime.format/3
This is the changelog for Cldr Calendars v1.4.0 released on September 14th, 2019. For older changelogs please consult the release tag on GitHub
- Adjusts
<calendar>.add/3
to<calendar>.add/5
so that it takes individual date and time elements and not formal structs. This is consistent with other calendar behaviours.
This is the changelog for Cldr Calendars v1.3.0 released on September 1st, 2019. For older changelogs please consult the release tag on GitHub
Adds <calendar>.add/3
to add :quarter
or :week
to a naive datetime. This adds to the existing support for :year
and :month
.
This is the changelog for Cldr Calendars v1.2.0 released on August 31st, 2019. For older changelogs please consult the release tag on GitHub
-
Adds
Cldr.Calendar.Duration
to create a duration struct defining the difference between two dates, times or date_times as a calendar difference in years, months, days, hours, minutes, seconds and microseconds. SeeCldr.Calendar.Duration.new/2
andCldr.Calendar.Duration.to_string/1
. -
Changes
sigil_d/2
from a function to a macro so that dates are created at compile time
This is the changelog for Cldr Calendars v1.1.0 released on August 30th, 2019. For older changelogs please consult the release tag on GitHub
-
Adds
<calendar>.add/3
to add:year
or:month
to a naive datetime. This function supports the library calendar_interval allowing intervals to be used withex_cldr_calendars
[https://hex.pm/packages/ex_cldr_calendars]. The mid-term objective is to addadd/3
to theCalendar
behaviour and thereby also simplify the interface toCalendarInterval
. -
Changes the output of
to_string/1
to consistently use the full name of the calendar module, not an appreviated name.
This is the changelog for Cldr Calendars v1.0.0 released on June 16th, 2019. For older changelogs please consult the release tag on GitHub
-
The format produced by inspecting a Date (or DateTime or NaiveDateTime) has changed. The parsing of dates in
sigil_d
(the~d
sigil) has also changed in order to facilitate roundtrip conversions. Previously a date would inspect as (using the NRF calendar)~d[2019-W01-1]NRF
. It now inspects as~d[2019-W01-1 NRF]
. The same approach is used for all calendars. See the examples inCldr.Calendar.Sigils
. This change is applicable to Elixir 1.10 and later. -
The calendar configuration option
:min_days
has been renamed:min_days_in_first_week
. The configuration option:day
has been renamed to:day_of_week
and the option:month
has been renamed to:month_of_year
. An exception will be raised if existing calendars are not updated. -
An exception will be raised if a calendar is configured with an unknown option.
-
Implements
inspect_date/4
,inspect_datetime/11
,inspect_naive_datetime/8
andinspect_time/5
for allCldr.Calendar
calendars. This implementation supports the revisedInspect
protocol implementation forDate
,Time
,DateTime
andNaiveDateTime
structs. The purpose of that change is to allow customer calendars to be inspected. This change is applicable to Elixir 1.10 and later. -
Adds
Cldr.Calendar.week_of_month/1
andCldr.Calendar
callbackweek_of_month/4
to return the week of a month. The weeks are calculated on the basis of the calendar configuration. As a result, the week of the month, like the week of the year, may be in a different Gregorian year and month compared to the specified date. -
Adds
Cldr.Calendar.weeks_in_year/1
to return the number of weeks in a year. -
Adds a calendar configuration where weeks start on the first day of the year. This configuration is valid only for
:month
based calendars. The configuration optionday: :first
triggers this behaviour. This configuration can result in the last week of the year being less than 7 days. -
Adds
Cldr.Calendar.inspect/2
that can be used as an:inspect_fun
option inInspect.Opts
for Elixir version 1.9. It will not be required for Elixir 1.10 and later since this commit introducesinspect_*
callbacks forDate
,Time
,DateTime
andNaiveDateTime
. An:inspect_fun
can be configured inIEx
by:
iex> IEx.configure(inspect: [inspect_fun: &Cldr.Calendar.inspect/2])
:ok
-
Ensure that
Cldr.Calendar
callbacks return aCalendar.ISO
calendar if called with one (either as part of a date or as a separate argument). -
Ensure the return calendar types of a an Interval are
Calendar.ISO
is the date provided isCalendar.ISO
-
Fix
Cldr.Calendar.plus/4
for:months
when the month wraps into the previous year(s) -
Fix
sigil_d
to correctly parse ISO Week dates that have only a single digit day
This is the changelog for Cldr Calendars v0.9.0 released on June 9th, 2019. For older changelogs please consult the release tag on GitHub
- Depends on Elixir 1.8 and above since it requires recent
Calendar
functionality.
This is the changelog for Cldr v0.8.0 released on June 8th, 2019. For older changelogs please consult the release tag on GitHub
-
Adds option
:type
toCldr.Calendar.localize/3
. This determines the format type to be localized. The valid types are:format
(the default) or:stand_alone
. -
Add
Cldr.Calendar.day_periods/2
to support localization of the day periods of a time -
Add
Cldr.Calendar.default_calendar/0
. ReturnsCldr.Calendar.Gregorian
-
Add
Cldr.Calendar.default_cldr_calendar/0
. Returns:gregorian
This is the changelog for Cldr Calendars v0.7.0 released on June 1st, 2019. For older changelogs please consult the release tag on GitHub
- Moved
year/1
,quarter/1
,month/1
,week/1
andday/1
to a new moduleCldr.Calendar.Interval
-
Adds
Cldr.Calendar.Interval.compare/2
to compare two intervals (date ranges) using Allen's Interval Algebra taxonomy. -
Defaults the calendar to
Cldr.Calendar.Gregorian
forCldr.Calendar.Interval.year/2
,Cldr.Calendar.Interval.quarter/3
,Cldr.Calendar.Interval.month/3
,Cldr.Calendar.Interval.week/3
andCldr.Calendar.Interval.day/3
This is the changelog for Cldr Calendars v0.6.0 released on April 28th, 2019. For older changelogs please consult the release tag on GitHub
- Remove the need for nimble_csv as a dependency
This is the changelog for Cldr Calendars v0.5.0 released on April 21th, 2019. For older changelogs please consult the release tag on GitHub
Cldr.Calendar.localize/3
for:days_of_week
now returns a list of 2-tuples that are of the format{day_of_week, day_name}
.
- Add
Cldr.Calendar.localize/6
which localises numbers as part of a date without parameter checking. This is considered a private implementation for now.
This is the changelog for Cldr Calendars v0.4.1 released on April 19th, 2019. For older changelogs please consult the release tag on GitHub
- Fix calculation of
days_in_month
for the last month in long year of a week-based calendar
This is the changelog for Cldr Calendars v0.4.0 released on April 19th, 2019. For older changelogs please consult the release tag on GitHub
-
Adds
Cldr.Calendar.interval_stream/3
which returns a stream function that when enumerated generates a list of dates with a specified precision of either:years
,:quarters
,:months
,:weeks
or:days
. This function has the same arguments and generates the same results asCldr.Calendar.interval/3
except it generates the results lazily. -
Adds
:days_of_week
option toCldr.Calendar.localize/3
which returns a list of the localized names of the days of the week in calendar order. -
Adds
calendar_base/0
to identify whether the calendar is week or month based.
- Fix
Cldr.Calendar.day_of_week/1
for week-based calendars
This is the changelog for Cldr Calendars v0.3.0 released on April 16th, 2019. For older changelogs please consult the release tag on GitHub
- Adds
Cldr.Calendar.interval/3
which generates an enumerable list of dates with a specified precision of either:years
,:quarters
,:months
,:weeks
or:days
.
iex> import Cldr.Calendar.Sigils
Cldr.Calendar.Sigils
iex> d = ~d[2019-01-31]
%Date{calendar: Cldr.Calendar.Gregorian, day: 31, month: 1, year: 2019}
iex> d2 = ~d[2019-05-31]
%Date{calendar: Cldr.Calendar.Gregorian, day: 31, month: 5, year: 2019}
iex> Cldr.Calendar.interval d, 3, :months
[
%Date{calendar: Cldr.Calendar.Gregorian, day: 28, month: 2, year: 2019},
%Date{calendar: Cldr.Calendar.Gregorian, day: 31, month: 3, year: 2019},
%Date{calendar: Cldr.Calendar.Gregorian, day: 30, month: 4, year: 2019}
]
iex> Cldr.Calendar.interval d, d2, :months
[
%Date{calendar: Cldr.Calendar.Gregorian, day: 31, month: 1, year: 2019},
%Date{calendar: Cldr.Calendar.Gregorian, day: 28, month: 2, year: 2019},
%Date{calendar: Cldr.Calendar.Gregorian, day: 31, month: 3, year: 2019},
%Date{calendar: Cldr.Calendar.Gregorian, day: 30, month: 4, year: 2019},
%Date{calendar: Cldr.Calendar.Gregorian, day: 31, month: 5, year: 2019}
]
This is the changelog for Cldr Calendars v0.2.0 released on April 14th, 2019. For older changelogs please consult the release tag on GitHub
-
All calendars now return
{year, month, day}
tuples fromdate_from_iso_days/1
. Previously in some cases they returned aDate.t
-
first_day_of_year/1
andlast_day_of_year/1
,first_gregorian_day_of_year/1
andlast_gregorian_day_of_year/1
now all return aDate.t
or an error tuple. Previously the returned result types were inconsistent. -
Remove
first_gregorian_day_of_year/1
andlast_gregorian_day_of_year/1
fromCldr.Calendar
callbacks.
- Adds
Cldr.Calendar.Julian
implementing the Julian calendar. This calendar does not implementweek/2
,week_of_year/3
oriso_week_of_year/3
.
- Fixes calculating negative offsets for months in a week-based calendar. Thanks to @bglusman. Closes #2.
This is the changelog for Cldr Calendars v0.1.0 released on April 5th, 2019. For older changelogs please consult the release tag on GitHub
- Initial release. See the README for a description of this project.