該庫實現了伊朗和阿富汗使用的陽曆回曆。
來自維基百科:
陽曆回曆(波斯語: هро هгрин гарий доло ,羅馬化: gāh-shomāri-ye hejri-ye khorshidi;普什圖語: אאזײ ևײ ײ 以及普什圖語: אאזײ ևײ 0 並稱為陽曆,被稱為 Hij為SH,是官方的伊朗的日曆和阿富汗。根據伊朗標準時間子午線(52.5°E,UTC+03:30)的天文計算確定,它始於三月春分(Nowruz)。
它對每年開始的確定在天文學上是準確的,與更固定的公曆或“公曆”相反,後者平均後具有相同的年份長度,達到相同的精度(更簡單的模式)連續三年365 天的日曆加上下一年的額外一天,但後者三年除外。每四個世紀就有一次)。一年的開始和天數仍然固定在兩個春分點之一,這是天文學上重要的日子,晝夜長度相同。當將一年中的特定日曆日期與其他日期進行比較時,它會導致所有天體的變異性較小。
十二個月中的每個月對應一個十二生肖。前六個月有 31 天,接下來的五個月有 30 天,最後一個月平年有 29 天,閏年有 30 天。元旦總是在三月春分這一天。
ex_cldr_calendars_persian 符合Calendar
和Cldr.Calendar
行為,因此支援Date
、 DateTime
、 NaiveDateTime
、 Time
和Calendar
函數中的函數。
對於 1.9 及之前的 Elixir 版本,可以透過以下方式建立日期:
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 找到。