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.