C#:
Jämföra två datum

How to:

using System;

class DateComparison
{
    static void Main()
    {
        DateTime startDate = new DateTime(2023, 3, 1);
        DateTime endDate = new DateTime(2023, 3, 15);

        // Jämför två datum
        int comparison = DateTime.Compare(startDate, endDate);
        
        // Kolla vilket datum som är tidigast
        if(comparison < 0)
            Console.WriteLine("StartDate är före EndDate.");
        else if(comparison > 0)
            Console.WriteLine("StartDate är efter EndDate.");
        else
            Console.WriteLine("Datumen är desamma.");

        // Beräkna antal dagar mellan
        TimeSpan duration = endDate - startDate;
        Console.WriteLine($"Det är {duration.Days} dagar mellan start- och slutdatum.");
    }
}

Sample output:

StartDate är före EndDate.
Det är 14 dagar mellan start- och slutdatum.

Deep Dive:

Att jämföra två datum i C# var inte alltid lika enkelt. På .NET:s tidigare dagar behövde man kanske göra fler steg och beräkningar för hand. Med DateTime-klassen och dess Compare-metod samt överlastning av operatorer som -, är det betydligt smidigare numera.

Du har alternativ som TimeSpan för att förenkla tidsspanner, eller att använda tredjepartspaket som NodaTime för ännu fler funktioner. För att hålla koden enkel har vi dock hållit oss till standardklassbiblioteket.

Detaljer som tidzoner och skottsekunder kan påverka jämförelser och tidsberäkningar, men för enkelhetens skull håller vi oss till DateTime som antar “lokaltid” om inget annat anges.

See Also: