ห้องสมุดนี้ใช้ปฏิทินสุริยคติฮิจเราะห์ที่ใช้ในอิหร่านและอัฟกานิสถาน
จากวิกิพีเดีย:
ปฏิทินสุริยคติฮิจเราะห์ (เปอร์เซีย: ا شماری هجری کورشیدی โรมัน: gāh-shomāri-ye hejri-ye khorshidi; Pashto: لمريز لېږدیز کیز ) หรือเรียกอีกอย่างว่า ปฏิทินสุริยคติฮิจเราะห์ หรือ ปฏิทินชัมซีฮิจเราะห์ และเรียกโดยย่อว่า SH เป็นทางการ ปฏิทินของอิหร่านและ อัฟกานิสถาน เริ่มต้นในวันวสันตวิษุวัตของเดือนมีนาคม (โนรูซ) ตามการคำนวณทางดาราศาสตร์สำหรับเส้นเมริเดียนเวลามาตรฐานของอิหร่าน (52.5°E, UTC+03:30)
การกำหนดวันเริ่มต้นของแต่ละปีมีความแม่นยำทางดาราศาสตร์ปีต่อปี ตรงข้ามกับปฏิทินเกรกอเรียนหรือ "ปฏิทินศักราช" ที่ตายตัวมากกว่า ซึ่งเมื่อเฉลี่ยแล้วจะมีช่วงปีเท่ากัน และมีความแม่นยำเท่ากัน (รูปแบบที่เรียบง่ายกว่า ) ปฏิทิน 365 วันเป็นเวลาสามปีติดต่อกันบวกอีกหนึ่งวันในปีถัดไป ยกเว้นปีหลังในสามปี ทุกๆ สี่ศตวรรษ) ต้นปีและจำนวนวันยังคงกำหนดไว้ที่หนึ่งในสองวิษุวัต ซึ่งเป็นวันสำคัญทางดาราศาสตร์ซึ่งมีระยะเวลากลางวันเท่ากับกลางคืน ส่งผลให้ความแปรปรวนของเทห์ฟากฟ้าทั้งหมดน้อยลงเมื่อเปรียบเทียบวันที่ในปฏิทินที่กำหนดจากหนึ่งปีกับวันอื่นๆ[2]
แต่ละเดือนทั้งสิบสองเดือนจะตรงกับราศี หกเดือนแรกมี 31 วัน ห้าเดือนถัดไปมี 30 วัน และเดือนสุดท้ายมี 29 วันในปีปกติ แต่ 30 วันในปีอธิกสุรทิน วันปีใหม่ตรงกับวันวสันตวิษุวัตของเดือนมีนาคมเสมอ
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"
ไลบรารีนี้เป็นส่วนหนึ่งของไลบรารี CLDR สำหรับ Elixir ได้แก่:
คุณสามารถติดตั้งแพ็คเกจได้โดยเพิ่ม cldr_calendars_persian
ในรายการการพึ่งพาของคุณใน mix.exs
:
def deps do
[
{ :ex_cldr_calendars_persian , "~> 1.0" }
]
end
สามารถดูเอกสารได้ที่https://hexdocs.pm/ex_cldr_persian_calendars