このライブラリは、イランとアフガニスタンで使用される太陽ヒジュラ暦を実装します。
ウィキペディアより:
太陽ヒジュラ暦 (ペルシア語: غا شماری هجری خورشیدی 、ローマ字: gāh-shomāri-ye hejri-ye khorshidi、パシュトー語: لمريز لېږدیز خیز )、太陽ヒジュラ暦またはシャムシ ヒジュラ暦とも呼ばれます。 SHと略されますが、公式です。イランのカレンダーとアフガニスタン。それは、イラン標準時子午線 (東経 52.5 度、UTC+03:30) の天文学的な計算によって決定される 3 月の春分点 (ノウルーズ) に始まります。
各年の始まりの決定は、より固定されたグレゴリオ暦や「紀元暦」とは対照的に、年ごとに天文学的に正確です。グレゴリオ暦や「西暦」は、平均すると年の長さが同じで、同じ精度が得られます (より単純なパターンの場合)。 ) 連続 3 年間の 365 日と翌年の追加日のカレンダー (後者の 3 年間の例外を除く) 4 世紀ごとに)。年の始まりとその日数は、昼と夜が同じ長さになる天文学的に重要な日である 2 つの春分点のいずれかに固定されています。これにより、ある年の特定の暦日を他の暦日と比較するときに、すべての天体の変動が少なくなります[2]。
12 か月のそれぞれが黄道十二宮に対応します。最初の 6 か月は 31 日、次の 5 か月は 30 日、最後の月は平年では 29 日ですが、閏年では 30 日になります。元旦は常に 3 月の春分に当たります。
ex_cldr_calendars_persian は、 Calendar
とCldr.Calendar
両方の動作に準拠しているため、 Date
、 DateTime
、 NaiveDateTime
、 Time
、およびCalendar
関数の関数がサポートされています。
Elixir バージョン 1.9 までの場合、日付は次の方法で作成できます。
iex > { :ok , date } = Date . new ( 1354 , 1 , 1 , Cldr.Calendar.Persian )
{ :ok , ~D [ 1354-01-01 Cldr.Calendar.Persian ] }
Elixir バージョン 1.10 以降の場合、 Sigil_D
ユーザー定義のカレンダーをサポートします。
iex> ~D[1354-01-01 Cldr.Calendar.Persian]
~D[1354-01-01 Cldr.Calendar.Persian]
ex_cldr_calendars_persian
、カレンダーのローカリゼーションをサポートする ex_cldr_calendars に依存します。完全な日付と時刻の形式については、「ex_cldr_dates_times」を参照してください。
基本的なローカリゼーションはCldr.Calendar.localize/3
によって実行されます。例えば:
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"
このライブラリは、以下を含む Elixir の CLDR ライブラリの一部です。
cldr_calendars_persian
mix.exs
の依存関係のリストに追加することで、パッケージをインストールできます。
def deps do
[
{ :ex_cldr_calendars_persian , "~> 1.0" }
]
end
ドキュメントは https://hexdocs.pm/ex_cldr_persian_calendars にあります。