Esta biblioteca implementa o calendário Solar Hijri que é usado no Irã e no Afeganistão.
Da Wikipédia:
O calendário Solar Hijri (persa: غا شماری هجری خورشیدی, romanizado: gāh-shomāri-ye hejri-ye khorshidi; pashto: لمريز لېږدیز خیز), também chamado de calendário Solar Hijri ou calendário Shamsi Hijri, e viaado como SH, é o oficial calendário do Irã e Afeganistão. Começa no equinócio de março (Nowruz), conforme determinado por cálculos astronômicos para o meridiano do horário padrão iraniano (52,5°E, UTC+03:30).
Sua determinação do início de cada ano é astronomicamente precisa ano a ano, em oposição ao calendário gregoriano mais fixo ou "calendário da Era Comum" que, em média, tem a mesma duração do ano, alcançando a mesma precisão (um padrão mais simples). ). em cada quatro séculos). O início do ano e o seu número de dias permanecem fixados em um dos dois equinócios, os dias astronomicamente importantes que têm a mesma duração do dia e da noite. Isso resulta em menos variabilidade de todos os corpos celestes ao comparar uma data específica do calendário de um ano com outros.[2]
Cada um dos doze meses corresponde a um signo do zodíaco. Os primeiros seis meses têm 31 dias, os próximos cinco têm 30 dias e o último mês tem 29 dias em anos normais, mas 30 dias em anos bissextos. O dia de Ano Novo sempre cai no equinócio de março.
ex_cldr_calendars_persian está em conformidade com os comportamentos Calendar
e Cldr.Calendar
e, portanto, as funções nas funções Date
, DateTime
, NaiveDateTime
, Time
e Calendar
são suportadas.
Para versões do Elixir até 1.9 inclusive, a data pode ser criada por:
iex > { :ok , date } = Date . new ( 1354 , 1 , 1 , Cldr.Calendar.Persian )
{ :ok , ~D [ 1354-01-01 Cldr.Calendar.Persian ] }
Para Elixir versão 1.10 e posterior, Sigil_D
suporta calendários definidos pelo usuário:
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 suporta localização de calendário. Para formatação completa de data e hora, consulte ex_cldr_dates_times.
A localização básica é realizada pelo Cldr.Calendar.localize/3
Por exemplo:
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 faz parte das bibliotecas CLDR para Elixir, incluindo:
Você pode instalar o pacote adicionando cldr_calendars_persian
à sua lista de dependências em mix.exs
:
def deps do
[
{ :ex_cldr_calendars_persian , "~> 1.0" }
]
end
A documentação pode ser encontrada em https://hexdocs.pm/ex_cldr_persian_calendars.