Esta biblioteca implementa el calendario solar Hijri que se utiliza en Irán y Afganistán.
De wikipedia:
El calendario solar Hijri (persa: غا شماری هجری خورشیدی, romanizado: gāh-shomāri-ye hejri-ye khorshidi; pashto: لمريز لېږدیز خیز), también llamado calendario solar Hijri o calendario Shamsi Hijri, y abreviado como SH, es el oficial calendario de Irán y Afganistán. Comienza en el equinoccio de marzo (Nowruz), según lo determinado por cálculos astronómicos para el meridiano de la hora estándar iraní (52,5°E, UTC+03:30).
Su determinación del inicio de cada año es astronómicamente precisa año tras año, a diferencia del calendario gregoriano más fijo o "calendario de la era común" que, promediado, tiene la misma duración de años, logrando la misma precisión (un patrón más simple). ). Calendario de 365 días durante tres años consecutivos más un día extra en el año siguiente, salvo excepciones a este último en tres. cada cuatro siglos). El comienzo del año y su número de días quedan fijados en uno de los dos equinoccios, los días astronómicamente importantes que tienen la misma duración de día que de noche. Esto da como resultado una menor variabilidad de todos los cuerpos celestes al comparar una fecha del calendario específica de un año con otros.[2]
Cada uno de los doce meses se corresponde con un signo del zodíaco. Los primeros seis meses tienen 31 días, los cinco siguientes tienen 30 días y el último mes tiene 29 días en años normales pero 30 días en años bisiestos. El día de Año Nuevo siempre cae en el equinoccio de marzo.
ex_cldr_calendars_persian se ajusta a los comportamientos Calendar
y Cldr.Calendar
y, por lo tanto, se admiten las funciones Date
, DateTime
, NaiveDateTime
, Time
y Calendar
.
Para las versiones de Elixir hasta la 1.9 inclusive, la fecha se puede crear mediante:
iex > { :ok , date } = Date . new ( 1354 , 1 , 1 , Cldr.Calendar.Persian )
{ :ok , ~D [ 1354-01-01 Cldr.Calendar.Persian ] }
Para Elixir versión 1.10 y posteriores, Sigil_D
admite calendarios definidos por el usuario:
iex> ~D[1354-01-01 Cldr.Calendar.Persian]
~D[1354-01-01 Cldr.Calendar.Persian]
ex_cldr_calendars_persian
depende de ex_cldr_calendars que admite la localización del calendario. Para obtener el formato completo de fecha y hora, consulte ex_cldr_dates_times.
La localización básica la realiza Cldr.Calendar.localize/3
Por ejemplo:
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"
Esta biblioteca es parte de las bibliotecas CLDR para Elixir, que incluyen:
Puede instalar el paquete agregando cldr_calendars_persian
a su lista de dependencias en mix.exs
:
def deps do
[
{ :ex_cldr_calendars_persian , "~> 1.0" }
]
end
La documentación se puede encontrar en https://hexdocs.pm/ex_cldr_persian_calendars.