Cette bibliothèque implémente le calendrier Solar Hijri utilisé en Iran et en Afghanistan.
De Wikipédia :
Le calendrier solaire Hijri (persan : غا شماری هجری خورشیدی, romanisé : gāh-shomāri-ye hejri-ye khorshidi ; pachto : لمريز لېږدیز خیز), également appelé calendrier solaire Hijri ou calendrier Shamsi Hijri, et abrégé en SH, est le fonctionnaire calendrier de l'Iran et Afghanistan. Il commence à l'équinoxe de mars (Norouz), tel que déterminé par les calculs astronomiques pour le méridien de l'heure standard iranienne (52,5°E, UTC+03:30).
Sa détermination du début de chaque année est astronomiquement précise d'année en année, par opposition au calendrier grégorien plus fixe ou « calendrier de l'ère commune » qui, en moyenne, a la même durée d'année, obtenant la même précision (un modèle plus simple). ). calendrier de 365 jours pendant trois années consécutives plus un jour supplémentaire l'année suivante, sauf exceptions à cette dernière sur trois. sur quatre siècles). Le début de l'année et son nombre de jours restent fixés à l'un des deux équinoxes, jours astronomiquement importants qui ont la même durée de jour que de nuit. Il en résulte moins de variabilité de tous les corps célestes lorsque l'on compare une date calendaire spécifique d'une année à l'autre.[2]
Chacun des douze mois correspond à un signe du zodiaque. Les six premiers mois comptent 31 jours, les cinq suivants 30 jours et le dernier mois compte 29 jours dans les années normales mais 30 jours dans les années bissextiles. Le jour de l'An tombe toujours à l'équinoxe de mars.
ex_cldr_calendars_persian est conforme aux comportements Calendar
et Cldr.Calendar
et donc les fonctions des fonctions Date
, DateTime
, NaiveDateTime
, Time
et Calendar
sont prises en charge.
Pour les versions Elixir jusqu'à la 1.9 incluse, la date peut être créée par :
iex > { :ok , date } = Date . new ( 1354 , 1 , 1 , Cldr.Calendar.Persian )
{ :ok , ~D [ 1354-01-01 Cldr.Calendar.Persian ] }
Pour Elixir version 1.10 et versions ultérieures, Sigil_D
prend en charge les calendriers définis par l'utilisateur :
iex> ~D[1354-01-01 Cldr.Calendar.Persian]
~D[1354-01-01 Cldr.Calendar.Persian]
ex_cldr_calendars_persian
dépend de ex_cldr_calendars qui prend en charge la localisation du calendrier. Pour le formatage complet de la date et de l'heure, voir ex_cldr_dates_times.
La localisation de base est effectuée par Cldr.Calendar.localize/3
Par exemple:
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"
Cette bibliothèque fait partie des bibliothèques CLDR pour Elixir comprenant :
Vous pouvez installer le package en ajoutant cldr_calendars_persian
à votre liste de dépendances dans mix.exs
:
def deps do
[
{ :ex_cldr_calendars_persian , "~> 1.0" }
]
end
La documentation peut être trouvée sur https://hexdocs.pm/ex_cldr_persian_calendars.