Elixir:
การคำนวณวันที่ในอนาคตหรืออดีต
วิธีทำ:
โดยการใช้โมดูล Date
ที่ติดตั้งมากับ Elixir, คุณสามารถเล่นกับไทม์ไลน์ได้อย่างง่ายดาย
# เพิ่มหรือลดจำนวนวันจากวันที่กำหนด
date_today = ~D[2023-04-15]
{year, month, day} = date_today
# คำนวณหาวันที่ 10 วันในอนาคต
date_future = Date.add(date_today, 10)
IO.inspect(date_future) # => ~D[2023-04-25]
# คำนวณหาวันที่ 30 วันในอดีต
date_past = Date.add(date_today, -30)
IO.inspect(date_past) # => ~D[2023-03-16]
ทันทีที่คุณสังเกตเห็นว่า Date.add/2
นั้นง่ายมากในการใช้งานเพื่อการเดินทางในไทม์คอนตินัม
ล้ำลึก
ความสามารถในการคำนวณวันที่ในอนาคตหรืออดีตไม่ใช่เรื่องใหม่ ภาษาโปรแกรมที่มีประวัติยาวนานก็มีวิธีการของตัวเอง—คิดถึง COBOL หรือ FORTRAN อย่างไรก็ตาม, Elixir นำเสนอสไตล์การทำงานแบบฟังก์ชันและความไม่สามารถในการเปลี่ยนแปลงของข้อมูลมาใช้, ทำให้การคำนวณวันที่เป็นตรงไปตรงมาและมีโอกาสน้อยที่จะเกิดข้อผิดพลาด
การเลือกทางเลือกอื่น? คุณอาจคำนวณด้วยมือโดยการเพิ่มวินาที, นาที, และอื่นๆ, แต่ทำไมต้องประดิษฐ์วงล้อใหม่ เมื่อ Elixir มีโมดูล Date
ที่ทรงพลัง? โดยเฉพาะอย่างยิ่งเมื่อการคำนวณที่อิงตามเวลาอาจกลายเป็นเรื่องซับซ้อน เมื่อต้องคำนวณรวมถึงปีอธิกสุรทิน, โซนเวลา, และการเปลี่ยนแปลงเวลาแสงวัน
รายละเอียดในการติดตั้งหมุนรอบความเข้าใจในโมดูล :calendar
ของ Elixir และการทำงานระดับพื้นฐานใน Erlang เรายืนอยู่บนบ่าของยุคสมัยของการพัฒนาฟังก์ชันวันและเวลา, ด้วย syntax sugar ของ Elixir ทำให้ทุกอย่างน่าประทับใจยิ่งขึ้น
ดูเพิ่มเติม
- เอกสารของโมดูล
Date
อย่างเป็นทางการของ Elixir: https://hexdocs.pm/elixir/Date.html - “วันที่, เวลา และโซนเวลาใน Elixir”: บทความที่สำรวจความสามารถในการจัดการเวลาของ Elixir อย่างลึกซึ้ง
- เอกสารของโมดูล
:calendar
ของ Erlang: http://erlang.org/doc/apps/erts/calendar.html