Fish Shell:
เปรียบเทียบสองวันที่
วิธีทำ:
ด้วย Fish Shell, เราสามารถเปรียบเทียบวันที่สองวันโดยใช้คำสั่ง date
ด้านล่างเป็นตัวอย่าง
# การได้รับวันที่ปัจจุบันเป็นจำนวนวินาทีนับตั้งแต่ยุคของยูนิกซ์
set current_date (date +%s)
# การแปลงวันที่เฉพาะเจาะจงเป็นวินาทีนับตั้งแต่ยุคของยูนิกซ์
set specific_date (date -d "2023-04-01" +%s)
# การเปรียบเทียบวันที่
if test $specific_date -lt $current_date
echo "วันที่เฉพาะเจาะจงเกิดขึ้นก่อนวันที่ปัจจุบัน"
else if test $specific_date -eq $current_date
echo "วันที่เหมือนกัน"
else
echo "วันที่เฉพาะเจาะจงเกิดขึ้นหลังจากวันที่ปัจจุบัน"
end
ตัวอย่างการแสดงผลหากวันที่ปัจจุบันเกินวันที่ 1 เมษายน 2023:
วันที่เฉพาะเจาะจงเกิดขึ้นก่อนวันที่ปัจจุบัน
ลึกซึ้งยิ่งขึ้น
ตามประวัติศาสตร์, การเปรียบเทียบวันที่ในการเขียนโปรแกรมเป็นเรื่องยากเนื่องจากมีรูปแบบวันที่และเขตเวลาที่หลากหลาย Fish Shell ทำให้งานนี้ง่ายขึ้นด้วยฟังก์ชัน date
ที่ติดตั้งมาพร้อม, โดยแปลงวันที่เป็นวินาทีนับตั้งแต่ยุคยูนิกซ์ (วันที่ 1 มกราคม 1970) ซึ่งให้จุดเวลารักษามาตรฐานที่เราสามารถเปรียบเทียบกัน
ตัวเลือกที่นอกเหนือจาก Fish Shell สำหรับเปรียบเทียบวันที่ รวมถึงภาษาสคริปต์เช่น Python หรือการใช้เครื่องมือจัดการวันที่ที่มีอยู่ในระบบของ Unix, เช่น dateutil
ใน GNU core utilities (coreutils) ในทางการนำไปใช้, เมื่อเราใช้ date +%s
, Fish โดยภายในจะเรียกคำสั่ง date
ของระบบ, ซึ่งเป็นเหตุผลว่าทำไมมันจึงมีประสิทธิภาพต่อการใช้งานข้ามแพลตฟอร์ม
การเปรียบเทียบวันที่ยังมีความสำคัญสำหรับงาน cron, สคริปต์สำรองข้อมูล, และการควบคุมการเข้าถึงตามเวลา เมื่อคุณมีความสะดวกสบายกับการเปรียบเทียบวันที่ หมายถึงว่าคุณจะมีการปรับใช้อัตโนมัติที่ราบรื่นและข้อบกพร่องทางเวลาน้อยลง