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
- .NET API-documentatie voor
DateTime
- Introductie tot
TimeSpan
- Microsoft’s beste praktijken voor
DateTime
enDateTimeOffset
- Noda Time-documentatie: https://nodatime.org