Datoberegninger
Legg til, trekk fra og sammenlign.
Datoberegninger er en gratis leksjon i C# Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i C# Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i C# Academy inneholder totalt 4 leksjoner.
Regne med datoer
DateTime-verdier er uforanderlige: Regneoperasjoner endrer aldri originalen. I stedet returnerer hver operasjon en helt ny DateTime.
Denne leksjonen dekker hvordan De legger til og trekker fra tid, sammenligner datoer og svarer på spørsmål som hvor mange dager det er til en hendelse.
AddDays
Metoden AddDays returnerer en dato som ligger så mange dager senere. Send inn et negativt tall for å gå bakover.
Fordi DateTime er uforanderlig, må De bruke verdien som returneres; originalen forblir uendret.
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-metodene
Det finnes en Add-metode for hver enhet: AddHours, AddMinutes, AddSeconds, AddMonths og AddYears.
De tar alle imot positive eller negative tall, så ett sett med 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 månedslengder
AddMonths håndterer ulike månedslengder på en smart måte. Hvis De legger én måned til 31. januar, får De 28. eller 29. februar, ikke en ugyldig dato.
Dette gjør at De slipper å kontrollere manuelt hvor mange dager 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å bakover
For å gå tilbake i tid sender De inn et negativt argument. AddDays(-7) gir datoen én uke tidligere.
Det finnes ingen separat metode for å trekke fra dager; negative verdier håndterer dette på en ryddig måte.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.AddDays(-7).ToString("yyyy-MM-dd"));
}
}Legge til en TimeSpan
De kan legge en TimeSpan direkte til en DateTime med operatoren + eller med metoden Add.
Dette er praktisk når De allerede har en varighet og vil forskyve en dato med den.
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);
}
}Forskjellen mellom datoer
Når De trekker én dato fra en annen, får De en TimeSpan som beskriver tidsforskjellen.
Les av TotalDays for å telle dagene mellom dem, også når perioden går over 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);
}
}Dager til en hendelse
En vanlig oppgave er å telle dagene frem til en fremtidig dato. Trekk dagens dato fra måldatoen, og les av TotalDays eller Days.
Bruk av faste datoer her gjør resultatet forutsigbart i læringssammenheng.
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);
}
}Sammenligne datoer
DateTime-verdier kan sammenlignes med <, > og ==. En tidligere dato er mindre enn en senere dato.
Det finnes også metoder som CompareTo og Equals når De trenger 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);
}
}Skuddår og dager i måneden
To statiske hjelpemetoder besvarer spørsmål om kalenderen. DateTime.IsLeapYear(year) returnerer true for skuddår.
DateTime.DaysInMonth(year, month) forteller hvor mange dager en angitt 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));
}
}Starten og slutten av dagen
For å hente starten av en dag bruker De egenskapen Date, som fjerner klokkeslettet og setter tiden til midnatt.
For dagens siste øyeblikk legger De til én dag og trekker fra ett tick, eller legger til 23:59:59. Egenskapen Date er det enkleste utgangspunktet.
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"));
}
}Hurtigsjekk
De starter med 31. januar 2024 og kaller AddMonths(1). Hvilken dato får De?
Oppsummering
Regneoperasjoner med DateTime returnerer nye verdier. Forskyv datoer med AddDays, AddMonths og lignende metoder, og bruk negative verdier for å gå bakover.
Trekk fra datoer for å få en TimeSpan, sammenlign med operatorer, og bruk IsLeapYear, DaysInMonth og Date til kalenderoppgaver.
Lær deg C# med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 93
- Leksjoner
- 346
Ofte stilte spørsmål
Er leksjonen «Datoberegninger» gratis?
Ja – hele teksten i «Datoberegninger» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av C# Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i C# Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Datoberegninger»?
Legg til, trekk fra og sammenlign. Du øver på C# Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med C# Academy?
Ingen tidligere erfaring er nødvendig. C# Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Datoberegninger»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne C# Academy-leksjonen?
Ja. Alle C# Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.