Päivämäärälaskenta
Lisätkää, vähentäkää ja vertailkaa.
Päivämäärälaskenta on ilmainen C# Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C# Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C# Academy-kurssilla on yhteensä 4 oppituntia.
Laskutoimitukset päivämäärillä
DateTime-arvot ovat muuttumattomia: laskutoimitukset eivät muuta alkuperäistä arvoa. Sen sijaan jokainen operaatio palauttaa täysin uuden DateTime-arvon.
Tässä oppitunnissa käsitellään ajan lisäämistä ja vähentämistä, päivämäärien vertaamista sekä kysymyksiin, kuten tapahtumaan jäljellä olevien päivien määrään, vastaamista.
AddDays
AddDays-metodi palauttaa päivämäärän, joka on annetun päivämäärän verran päiviä myöhemmin. Negatiivinen luku siirtää päivämäärää taaksepäin.
Koska DateTime on muuttumaton, palautettu arvo täytyy ottaa käyttöön; alkuperäinen arvo ei muutu.
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-metodien perhe
Jokaiselle yksikölle on oma Add-metodinsa: AddHours, AddMinutes, AddSeconds, AddMonths ja AddYears.
Kaikki hyväksyvät positiivisia ja negatiivisia lukuja, joten sama metodijoukko käsittelee sekä tulevaisuuden että menneisyyden.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5, 9, 0, 0);
Console.WriteLine(d.AddHours(5).Hour);
}
}AddMonths käsittelee ylivuodon
AddMonths ottaa kuukausien pituudet huomioon. Yhden kuukauden lisääminen tammikuun 31. päivään antaa tulokseksi helmikuun 28. tai 29. päivän, ei virheellistä päivämäärää.
Näin Teidän ei tarvitse tarkistaa käsin, kuinka monta päivää kussakin kuukaudessa on.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 1, 31);
Console.WriteLine(d.AddMonths(1).ToString("yyyy-MM-dd"));
}
}Siirtyminen taaksepäin
Siirtykää menneisyyteen antamalla negatiivinen argumentti. AddDays(-7) antaa päivämäärän, joka on viikkoa aikaisempi.
Erillistä päivien vähentämiseen tarkoitettua Subtract-metodia ei ole; negatiiviset arvot hoitavat tämän selkeästi.
using System;
class Program
{
static void Main()
{
DateTime d = new DateTime(2024, 3, 5);
Console.WriteLine(d.AddDays(-7).ToString("yyyy-MM-dd"));
}
}TimeSpanin lisääminen
Voitte lisätä TimeSpan-arvon suoraan DateTime-arvoon +-operaattorilla tai Add-metodilla.
Tämä on kätevää, kun teillä on jo kesto ja haluatte siirtää päivämäärää sen verran.
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);
}
}Päivämäärien välinen ero
Yhden päivämäärän vähentäminen toisesta tuottaa TimeSpan-arvon, joka kuvaa niiden välistä eroa.
Lukemalla TotalDays-arvon saatte niiden välisten päivien määrän myös silloin, kun väli ylittää kuukausi- tai vuosirajan.
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);
}
}Tapahtumaan jäljellä olevat päivät
Yleinen tehtävä on laskea tulevaan päivämäärään jäljellä olevien päivien määrä. Vähentäkää tämä päivä kohdepäivämäärästä ja lukekaa TotalDays tai Days.
Kiinteiden päivämäärien käyttäminen pitää tulosteen oppimista varten ennakoitavana.
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);
}
}Päivämäärien vertaaminen
DateTime-arvoja verrataan operaattoreilla <, > ja ==. Aikaisempi päivämäärä on pienempi kuin myöhempi.
Käytettävissä on myös metodeja, kuten CompareTo ja Equals, kun tarvitsette muodollisen vertailutuloksen.
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);
}
}Karkausvuodet ja kuukauden päivät
Kaksi staattista apumetodia vastaa kalenteria koskeviin kysymyksiin. DateTime.IsLeapYear(year) palauttaa true-arvon karkausvuosina.
DateTime.DaysInMonth(year, month) kertoo, kuinka monta päivää annetussa kuukaudessa on, ja käsittelee helmikuun oikein.
using System;
class Program
{
static void Main()
{
Console.WriteLine(DateTime.IsLeapYear(2024));
Console.WriteLine(DateTime.DaysInMonth(2024, 2));
}
}Päivän alku ja loppu
Saatte päivän alun käyttämällä Date-ominaisuutta, joka poistaa kellonajan ja asettaa ajaksi keskiyön.
Päivän viimeisen hetken saatte lisäämällä yhden päivän ja vähentämällä yhden tikin tai lisäämällä ajan 23:59:59. Date-ominaisuus on yksinkertaisin lähtökohta.
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"));
}
}Pikatarkistus
Aloitatte päivämäärästä 31.1.2024 ja kutsutte metodia AddMonths(1). Minkä päivämäärän saatte?
Kertaus
DateTime-laskutoimitukset palauttavat uusia arvoja. Siirtäkää päivämääriä AddDays- ja AddMonths-metodeilla sekä niiden vastineilla; käyttäkää negatiivisia arvoja siirtyäksenne taaksepäin.
Vähentäkää päivämääriä saadaksenne TimeSpan-arvon, verratkaa niitä operaattoreilla ja käyttäkää kalenteritehtävissä ominaisuuksia IsLeapYear, DaysInMonth ja Date.
Opi C# tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 93
- Oppitunnit
- 346
Usein kysytyt kysymykset
Onko oppitunti ”Päivämäärälaskenta” ilmainen?
Kyllä – oppitunnin ”Päivämäärälaskenta” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C# Academy-kurssin, päivitä CoddyKit PROhon. C# Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Päivämäärälaskenta”?
Lisätkää, vähentäkää ja vertailkaa. Harjoittelet C# Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C# Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C# Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Päivämäärälaskenta”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C# Academy-oppitunnilla?
Kyllä. Jokainen C# Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- DateTime-arvojen luominen
- Päivämäärien muotoilu
- TimeSpan ja kestot
- Päivämäärälaskenta