Een datum in de toekomst of het verleden berekenen

C#:
Een datum in de toekomst of het verleden berekenen

Hoe:

Toekomstige datums berekenen:

using System;

class DateExample
{
    static void Main()
    {
        DateTime currentDate = DateTime.Now;
        TimeSpan oneWeek = TimeSpan.FromDays(7);
        
        DateTime nextWeek = currentDate + oneWeek;
        Console.WriteLine($"Over een week: {nextWeek}");
    }
}

Uitvoer:

Over een week: <datum een week vanaf de huidige datum>

Verleden datums berekenen:

using System;

class DateExample
{
    static void Main()
    {
        DateTime currentDate = DateTime.Now;
        TimeSpan tenDaysAgo = TimeSpan.FromDays(-10);
        
        DateTime pastDate = currentDate + tenDaysAgo;
        Console.WriteLine($"Tien dagen geleden was het: {pastDate}");
    }
}

Uitvoer:

Tien dagen geleden was het: <datum tien dagen voor de huidige datum>

Diepgaande duik

In C#, zijn DateTime en TimeSpan de basis voor datum- en tijdoperaties. DateTime vertegenwoordigt een moment in tijd, doorgaans uitgedrukt als een datum en tijdstip van de dag. TimeSpan vertegenwoordigt een tijdsinterval.

Historisch gezien waren datum- en tijdberekeningen gevoelig voor fouten door de handmatige afhandeling van dagen, maanden en schrikkeljaren. DateTime abstraheert deze complexiteiten, waardoor het framework de lastige kwesties afhandelt.

Alternatieven voor DateTime en TimeSpan in .NET omvatten DateTimeOffset, die een tijdzoneverschuiving bevat, wat beter is voor toepassingen die over tijdzones heen werken. Een andere alternatief is Noda Time, een bibliotheek van Jon Skeet ontworpen voor meer complexe datum- en tijdbewerkingen, zoals verschillende kalenders.

Wat betreft implementatie, wanneer je een TimeSpan aan een DateTime toevoegt, manipuleert het onder de kap de ticks, de fundamentele tijdseenheid in .NET (1 tick = 100 nanoseconden). Voor verleden datums doet een negatieve TimeSpan het werk.

Zie Ook