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

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

วิธีทำ:

# มาเริ่มจากการเอาวันที่ของวันนี้มาก่อน
$today = Get-Date

# และนี่คือวันที่เฉพาะเจาะจงหนึ่งวัน
$someOtherDate = Get-Date "2023-03-17"

# พวกมันเท่ากันหรือไม่?
$today -eq $someOtherDate

# วันนี้มีค่ามากกว่า (หลังจาก) วันที่อื่นหรือไม่?
$today -gt $someOtherDate

# แล้วถ้าต้องการตรวจสอบว่ามันเกิดขึ้นก่อนหรือไม่ล่ะ?
$today -lt $someOtherDate

# มาดูผลลัพธ์กันเถอะ

False
True
False

ลงลึก

ย้อนกลับไปในยุคหินของการคอมพิวติ้ง—ไม่จริงด้วยซ้ำ แต่คุณรู้ล่ะ ยุคแรกๆ—วันที่เป็นเรื่องยุ่งยาก เราได้พัฒนาไกลอย่างมากด้วยมาตรฐาน และ PowerShell ได้ทำให้มันง่ายขึ้นอีก

นี่คือส่วนที่ควรตระหนักถึง:

  1. ประวัติ: คอมพิวเตอร์เคยจัดการกับวันที่ในรูปแบบต่างๆ ทำให้เกิดความสับสนและบักแบบ Y2K ได้ PowerShell ใช้โครงสร้าง DateTime ของ .NET ช่วยหลีกเลี่ยงความโกลาหลนั้น

  2. ทางเลือก: คุณยังสามารถใช้ Compare-Object หรือใช้วิธีการจากอ็อบเจกต์ [datetime] เช่น .AddDays() ในการทำการคำนวณก่อนการเปรียบเทียบ จำไว้ว่าให้ใช้ Measure-Command เพื่อทดสอบผลกระทบด้านประสิทธิภาพ

  3. รายละเอียดการดำเนินการ: วันที่ใน PowerShell เป็นอ็อบเจกต์ที่มีคุณสมบัติและวิธีการของตัวเอง การเปรียบเทียบวันที่ทำได้ด้วยตัวดำเนินการ (-eq, -lt, -gt), และด้วยการโอเวอร์โหลดตัวดำเนินการ PowerShell รู้ว่าคุณกำลังจัดการกับวันที่ ไม่ใช่แค่สตริงหรือตัวเลข

ในระดับแอสเซมบลี การเปรียบเทียบวันที่แปลเป็นการเปรียบเทียบจำนวนเติ๊ก (ช่วง 100 นาโนวินาทีตั้งแต่วันที่ 1/1/0001) ดังนั้นคุณจึงเปรียบเทียบจำนวนเต็มขนาดใหญ่ ซึ่งมีประสิทธิภาพ

ดูเพิ่มเติม