Datomatematik
Læg sammen, træk fra, og sammenlign.
Datomatematik er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 4 lektioner i alt.
Beregninger med datoer
DateTime-værdier er uforanderlige: Beregninger ændrer aldrig den oprindelige værdi. I stedet returnerer hver operation en helt ny DateTime.
Denne lektion gennemgår, hvordan du lægger tid til og trækker tid fra, sammenligner datoer og besvarer spørgsmål som hvor mange dage der er til en begivenhed.
AddDays
Metoden AddDays returnerer en dato, der ligger det angivne antal dage senere. Giv den et negativt tal for at gå tilbage.
Da DateTime er uforanderlig, skal du bruge den returnerede værdi; den oprindelige værdi forbliver uændret.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
DateTime later = d.AddDays(10);
Console.WriteLine(later.ToString("yyyy-MM-dd"));
}
}Add-metoderne
Der findes en Add-metode for hver enhed: AddHours, AddMinutes, AddSeconds, AddMonths og AddYears.
De accepterer alle positive og negative tal, så det samme sæt metoder håndterer både fremtid og fortid.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 9, 0, 0);
Console.WriteLine(d.AddHours(5).Hour);
}
}AddMonths håndterer datooverløb
AddMonths tager højde for månedernes forskellige længder. Hvis du lægger én måned til 31. januar, får du 28. eller 29. februar, ikke en ugyldig dato.
Det betyder, at du ikke selv behøver kontrollere, hvor mange dage hver måned har.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 1, 31);
Console.WriteLine(d.AddMonths(1).ToString("yyyy-MM-dd"));
}
}Gå tilbage
Hvis du vil gå tilbage i tiden, skal du angive et negativt argument. AddDays(-7) giver datoen én uge tidligere.
Der findes ikke en separat metode til at trække dage fra; negative værdier håndterer det på en enkel måde.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.AddDays(-7).ToString("yyyy-MM-dd"));
}
}Tilføjelse af en TimeSpan
Du kan lægge en TimeSpan direkte til en DateTime med operatoren + eller med metoden Add.
Det er praktisk, når du allerede har et tidsrum og vil forskyde en dato med det.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 9, 0, 0);
DateTime later = d + TimeSpan.FromHours(3);
Console.WriteLine(later.Hour);
}
}Forskel mellem datoer
Når du trækker én dato fra en anden, får du en TimeSpan, der beskriver tidsforskellen.
Læs TotalDays for at tælle dagene mellem dem, også når perioden går på tværs af måneder eller år.
using System;
class Program
{
static void Main()
{
DateTime start = new DateTime(2024, 1, 1);
DateTime end = new DateTime(2024, 3, 1);
Console.WriteLine((end - start).TotalDays);
}
}Dage indtil en begivenhed
En almindelig opgave er at tælle dagene indtil en fremtidig dato. Træk dags dato fra måldatoen, og læs TotalDays eller Days.
Hvis du bruger faste datoer her, bliver resultatet forudsigeligt under indlæringen.
using System;
class Program
{
static void Main()
{
DateTime today = new DateTime(2024, 3, 1);
DateTime party = new DateTime(2024, 3, 15);
Console.WriteLine((party - today).Days);
}
}Sammenligning af datoer
DateTime-værdier sammenlignes med <, > og ==. En tidligere dato er mindre end en senere dato.
Der findes også metoder som CompareTo og Equals, når du har brug for et formelt sammenligningsresultat.
using System;
class Program
{
static void Main()
{
DateTime a = new DateTime(2024, 1, 1);
DateTime b = new DateTime(2024, 6, 1);
Console.WriteLine(a < b);
}
}Skudår og antal dage i en måned
To statiske hjælpemetoder besvarer spørgsmål om kalenderen. DateTime.IsLeapYear(year) returnerer true for skudår.
DateTime.DaysInMonth(year, month) fortæller, hvor mange dage en bestemt måned har, og håndterer februar korrekt.
using System;
class Program
{
static void Main()
{
Console.WriteLine(DateTime.IsLeapYear(2024));
Console.WriteLine(DateTime.DaysInMonth(2024, 2));
}
}Dagens start og slutning
Brug egenskaben Date for at få dagens start; den fjerner klokkeslættet, så det bliver midnat.
Hvis du vil have dagens sidste øjeblik, kan du lægge én dag til og trække et tick fra eller lægge 23:59:59 til. Egenskaben Date er det enkleste grundlag.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 14, 30, 0);
Console.WriteLine(d.Date.ToString("yyyy-MM-dd HH:mm"));
}
}Hurtigt tjek
Du starter med 31. januar 2024 og kalder AddMonths(1). Hvilken dato får du?
Opsummering
Beregninger med DateTime returnerer nye værdier. Forskyd datoer med AddDays, AddMonths og lignende metoder, og brug negative værdier til at gå tilbage.
Træk datoer fra hinanden for at få en TimeSpan, sammenlign dem med operatorer, og brug IsLeapYear, DaysInMonth og Date til kalenderopgaver.
Lær C# med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 93
- Lektioner
- 346
Ofte stillede spørgsmål
Er lektionen “Datomatematik” gratis?
Ja — hele teksten til “Datomatematik” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Datomatematik”?
Læg sammen, træk fra, og sammenlign. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på C# Academy?
Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Datomatematik”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne C# Academy-lektion?
Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Opret DateTimes
- Formatér datoer
- TimeSpan og varigheder
- Datomatematik