เปรียบเทียบสองวันที่

Lua:
เปรียบเทียบสองวันที่

วิธีทำ:

Lua ไม่มีฟังก์ชันการเปรียบเทียบวันที่แบบในตัว แต่เราสามารถใช้ฟังก์ชัน os.time() เพื่อแปลงวันที่เป็นรูปแบบตัวเลข (เวลายุค) และจากนั้นเปรียบเทียบพวกเขา ง่ายนิดเดียว

-- แปลงวันที่เป็นเวลายุค
local date1 = os.time({year=2023, month=4, day=1})
local date2 = os.time({year=2023, month=4, day=15})

-- เปรียบเทียบวันที่
if date1 > date2 then
  print("Date1 มาหลังจาก Date2.")
elseif date1 < date2 then
  print("Date1 มาก่อน Date2.")
else
  print("Date1 เหมือนกับ Date2.")
end

ผลลัพธ์ตัวอย่างหากเรียกใช้กับวันที่เหล่านี้:

Date1 มาก่อน Date2.

ศึกษาเพิ่มเติม

ในอดีต Lua ไม่มีประเภทข้อมูลวันที่ โปรแกรมเมอร์พึ่งพาฟังก์ชัน os.time() สำหรับการดำเนินงานวันที่-เวลา ซึ่งยังคงใช้งานอยู่ในปัจจุบัน os.time() คืนค่าเวลาเป็นวินาทีนับตั้งแต่ยุค (หรือเรียกว่า Unix time ซึ่งเริ่มต้นในวันที่ 1 มกราคม 1970) นี่เป็นสิ่งที่มีประโยชน์เนื่องจากมันแปลงวันที่เป็นตัวเลข ทำให้การเปรียบเทียบง่ายขึ้น

สำหรับทางเลือกอื่น คุณอาจเขียนตัวเปรียบเทียบที่กำหนดเองสำหรับตารางวันที่ เปรียบเทียบแต่ละฟิลด์ (ปี, เดือน, วัน) ด้วยตนเอง หรือใช้ไลบรารีวันที่ของบุคคลที่สามเช่น LuaDate

เมื่อใช้ os.time() ให้ระมัดระวังเกี่ยวกับเขตเวลาและการเปลี่ยนแปลงเวลาออมแสง ฟังก์ชันสมมติว่าคุณกำลังให้เวลาท้องถิ่นเว้นแต่คุณจะระบุอย่างอื่น

ดูเพิ่มเติม