Diese Bibliothek implementiert den Solar-Hijri-Kalender, der im Iran und in Afghanistan verwendet wird.
Aus Wikipedia:
Der Solar-Hijri-Kalender (persisch: غا شماری هجری خورشیدی, romanisiert: gāh-shomāri-ye hejri-ye khorshidi; Paschtu: لمريز لېږدیز خیز), auch Solar-Hijri-Kalender oder Shamsi-Hijri-Kalender genannt, und bekannt als SH, ist der Beamte Kalender von Iran und Afghanistan. Es beginnt mit der März-Tagundnachtgleiche (Nowruz), wie durch astronomische Berechnungen für den Meridian der iranischen Standardzeit (52,5° E, UTC+03:30) bestimmt.
Seine Bestimmung des Beginns eines jeden Jahres ist von Jahr zu Jahr astronomisch genau, im Gegensatz zum festeren gregorianischen Kalender oder „Kalender des Zeitalters“, der gemittelt die gleiche Jahreslänge hat und die gleiche Genauigkeit erreicht (ein einfacheres Muster). ). Kalender mit 365 Tagen für drei aufeinanderfolgende Jahre plus einem zusätzlichen Tag im folgenden Jahr, mit Ausnahme von Ausnahmen in drei Jahren in allen vier Jahrhunderten). Der Beginn des Jahres und die Anzahl seiner Tage bleiben auf einen der beiden Tagundnachtgleichen festgelegt, die astronomisch wichtigen Tage, an denen Tag und Nacht gleich lang sind. Dies führt zu einer geringeren Variabilität aller Himmelskörper, wenn ein bestimmtes Kalenderdatum von einem Jahr mit anderen verglichen wird.[2]
Jeder der zwölf Monate entspricht einem Sternzeichen. Die ersten sechs Monate haben 31 Tage, die nächsten fünf 30 Tage und der letzte Monat hat 29 Tage in normalen Jahren, aber 30 Tage in Schaltjahren. Der Neujahrstag fällt immer auf die März-Tagundnachtgleiche.
ex_cldr_calendars_persian entspricht sowohl dem Calendar
als auch Cldr.Calendar
Verhalten und daher werden die Funktionen in den Funktionen Date
, DateTime
, NaiveDateTime
, Time
und Calendar
unterstützt.
Für Elixir-Versionen bis einschließlich 1.9 kann das Datum erstellt werden durch:
iex > { :ok , date } = Date . new ( 1354 , 1 , 1 , Cldr.Calendar.Persian )
{ :ok , ~D [ 1354-01-01 Cldr.Calendar.Persian ] }
Für Elixir Version 1.10 und höher unterstützt Sigil_D
benutzerdefinierte Kalender:
iex> ~D[1354-01-01 Cldr.Calendar.Persian]
~D[1354-01-01 Cldr.Calendar.Persian]
ex_cldr_calendars_persian
hängt von ex_cldr_calendars ab, das die Kalenderlokalisierung unterstützt. Die vollständige Formatierung von Datum und Uhrzeit finden Sie unter ex_cldr_dates_times.
Die grundlegende Lokalisierung erfolgt durch Cldr.Calendar.localize/3
Zum Beispiel:
iex > Cldr.Calendar . localize ( date , :month , locale: "en" )
"Farvardin"
iex > Cldr.Calendar . localize ( date , :month , locale: "fa" )
"فروردین"
iex > Cldr.Calendar . localize ( date , :day_of_week , locale: "fa" )
"جمعه"
iex > Cldr.Calendar . localize ( date , :day_of_week , locale: "en" )
"Fri"
Diese Bibliothek ist Teil der CLDR-Bibliotheken für Elixir, einschließlich:
Sie können das Paket installieren, indem Sie cldr_calendars_persian
zu Ihrer Abhängigkeitsliste in mix.exs
hinzufügen:
def deps do
[
{ :ex_cldr_calendars_persian , "~> 1.0" }
]
end
Die Dokumentation finden Sie unter https://hexdocs.pm/ex_cldr_persian_calendars.