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 กับเวลาท้องถิ่น? นั่นเป็นการทำให้สับสน ตรวจสอบให้แน่ใจว่าประเภทของเวลาตรงกันเพื่อหลีกเลี่ยงตรรกะที่ผิดพลาด!
ดูเพิ่มเติม
ดำดิ่งลึกหรือชี้แจงสิ่งต่างๆ ด้วยเหล่านี้:
- คู่มือ DateTime ของ Microsoft: https://docs.microsoft.com/en-us/dotnet/api/system.datetime
- เพิ่มเติมเกี่ยวกับ DateTime.Kind: https://docs.microsoft.com/en-us/dotnet/api/system.datetime.kind
- NodaTime, สำหรับผู้ที่สนใจเรื่องเวลา: https://nodatime.org/
- TimeSpan สำหรับการแสดงความแตกต่างของเวลา: https://docs.microsoft.com/en-us/dotnet/api/system.timespan