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

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

วิธีทำ:

มาดำดิ่งเข้าไปใน C# เพื่อเปรียบเทียบวันที่กัน สมมุติว่าเรามีวัตถุ DateTime สองวัตถุ, date1 และ date2 เราเปรียบเทียบโดยใช้ DateTime.Compare(date1, date2), date1.CompareTo(date2), หรือเปรียบเทียบคุณสมบัติโดยตรง:

DateTime date1 = new DateTime(2023, 3, 25);
DateTime date2 = new DateTime(2023, 3, 30);

// ใช้วิธีการ static ของ DateTime.Compare
int result = DateTime.Compare(date1, date2);

if(result < 0)
    Console.WriteLine("date1 อยู่ก่อน date2.");
else if(result == 0)
    Console.WriteLine("date1 เหมือนกันกับ date2.");
else
    Console.WriteLine("date1 อยู่หลัง date2.");

// ใช้เมธอด instance CompareTo
result = date1.CompareTo(date2);

if(result < 0)
    Console.WriteLine("date1 ก็ยังอยู่ก่อนอยู่ดี.");
else if(result == 0)
    Console.WriteLine("ยังเป็นเวลาเดียวกันอยู่หรอ?");
else
    Console.WriteLine("date1 พยายามอยู่หลังในครั้งนี้?");

// เปรียบเทียบโดยตรง
if(date1 < date2)
    Console.WriteLine("ใช่, date1 อยู่ก่อน, เราสามารถเห็นนั่นได้โดยตรง.");
else if(date1 == date2)
    Console.WriteLine("เท่ากัน, ง่ายและชัดเจน.");
else
    Console.WriteLine("หรือว่า date1 อยู่หลัง? ไม่, ไม่ใช่ครั้งนี้.");

ผลลัพธ์จะแสดงว่า date1 อยู่ก่อน date2 ในการเปรียบเทียบทั้งหมด—คุณกำลังพูดถึงสิ่งที่ชัดเจน, แต่นั่นคือหน้าที่ของบันทึกการทำงาน.

การดำดิ่งลึกลงไป

การเปรียบเทียบ DateTime เป็นส่วนหนึ่งของ C# ตั้งแต่เริ่มต้น, สำคัญสำหรับการจัดการกับแนวคิดของเวลาที่สำคัญเสมอมา ภายใน, ค่าของ DateTime แทนถึงเคาะตั้งแต่เที่ยงคืน, 1 มกราคม, 0001, ภายใน Common Language Runtime

ต้องการทางเลือก? คุณอาจใช้ TimeSpan สำหรับความแตกต่าง, หรือใช้ NodaTime ไลบรารีโดย Jon Skeet สำหรับการจัดการวันที่และเวลาที่ซับซ้อนมากขึ้้น

นี่เป็นข้อเท็จจริงสนุกทางเทคนิคหนึ่ง: ประเภทของ DateTime ใน .NET อาจเป็น Unspecified, Utc, หรือ Local การเปรียบเทียบเวลา UTC กับเวลาท้องถิ่น? นั่นเป็นการทำให้สับสน ตรวจสอบให้แน่ใจว่าประเภทของเวลาตรงกันเพื่อหลีกเลี่ยงตรรกะที่ผิดพลาด!

ดูเพิ่มเติม

ดำดิ่งลึกหรือชี้แจงสิ่งต่างๆ ด้วยเหล่านี้: