C#:
比较两个日期

How to (如何操作)

using System;

public class DateComparison
{
    static void Main(string[] args)
    {
        DateTime startDate = new DateTime(2023, 4, 1);
        DateTime endDate = new DateTime(2023, 12, 31);
        
        int result = DateTime.Compare(startDate, endDate);
        
        if (result < 0)
            Console.WriteLine("startDate comes before endDate.");
        else if (result == 0)
            Console.WriteLine("startDate is the same as endDate.");
        else
            Console.WriteLine("startDate comes after endDate.");

        // TimeSpan example for interval
        TimeSpan interval = endDate - startDate;
        Console.WriteLine($"Interval between dates: {interval.Days} days");
    }
}

输出:

startDate comes before endDate.
Interval between dates: 274 days

Deep Dive (深入探索)

在 .NET 的早期版本中,日期和时间的处理一直是中心话题。DateTime 类自 .NET Framework 1.0 起就存在,提供了比较日期的简单方法。除了 DateTime.Compare 外,你还可以使用操作符比较两个 DateTime 对象(如 ><)。

时间间隔由 TimeSpan 表示,它可以通过简单的减法得到。你还可以使用它来处理跨越年、月、日的更复杂计算,但需要注意的是,AddSubtract方法在处理润秒时可能会有不同表现。

作为选择,我们还有 DateTimeOffset,这对于比较包含时区的日期和时间很有用。自 .NET Core 之后的版本引入 System.Globalization,也使得全球化日期和时间格式的处理变得更为容易。

See Also (另请参阅)