public static class DateTool
{
public static DateTime Min(DateTime x, DateTime y)
{
return (x.ToUniversalTime() < y.ToUniversalTime()) ? x : y;
}
public static DateTime Max(DateTime x, DateTime y)
{
return (x.ToUniversalTime() > y.ToUniversalTime()) ? x : y;
}
}
สิ่งนี้ทำให้วันที่มี 'ชนิด' ที่แตกต่างกันและส่งคืนอินสแตนซ์ที่ส่งผ่าน (ไม่ส่งคืน DateTime ใหม่ที่สร้างจากเห็บหรือมิลลิวินาที)
[TestMethod()]
public void MinTest2()
{
DateTime x = new DateTime(2001, 1, 1, 1, 1, 2, DateTimeKind.Utc);
DateTime y = new DateTime(2001, 1, 1, 1, 1, 1, DateTimeKind.Local);
//Presumes Local TimeZone adjustment to UTC > 0
DateTime actual = DateTool.Min(x, y);
Assert.AreEqual(x, actual);
}
โปรดทราบว่าการทดสอบนี้จะล้มเหลวทางตะวันออกของกรีนวิช ...