Calendrical

Calendrical provides calendar-related functions that build upon the conversion capabilities of Calendar available in Elixir from verison 1.5.0.

The conversion mechanism is based upon the definition of rata die as described in Calendrical Calculations by Dershowitz and Rheingold. This rata die gives a numberical value to a moment in time that is idependent of any specific calendar. As a result libraries such as Calendrical can implement different calendars and calendar calculations in a conformant way.

Calendrical implements:

  • K-Day calculations in Calendrical.Kday

  • Additional Arithmetic calendar types (Julian calendar in the first release)

  • Astronomical calendar types (in a future release)

Roadmap

This first release provides k-day functions in Calendarical.Kday. Next few releases will add additional arithmetic calendars. Astronomical calendars will take longer - to ensure the Astronomy calculations are correct.

Elixir Version Support

Calendrical requires Elixir 1.5 or later. It is tested on Elixir 1.5.0-rc.0

Installation

If available in Hex, the package can be installed as:

  1. Add calendrical to your list of dependencies in mix.exs:

    def deps do
      [{:calendrical, "~> 0.1.0"}]
    end
  2. Ensure calendrical is started before your application:

    def application do
      [applications: [:calendrical]]
    end

If published on HexDocs, the docs can be found at https://hexdocs.pm/calendrical