DateTime: leren werken met objecten
DateTime
De .NET klasse DateTime
is de ideale manier om te leren werken met objecten. Het is een nuttige en toegankelijk klasse.
Grote delen van deze tekst komen van zetoode.com.
DateTime objecten aanmaken
Er zijn 2 manieren om DateTime
objecten aan te maken:
Door aan de klasse de huidige datum en tijd te vragen via
DateTime.Now
Door manueel de datum en tijd in te stellen via de constructor
DateTime.Now
Volgend voorbeeld toont hoe we een object kunnen maken dat de huidige datum tijd van het systeem bevat. Vervolgens printen we dit op het scherm:
Met constructor
Via de constructor kunnen we beginwaarden meegeven bij het maken van een nieuw object. Er zijn 11 manieren waarop dit kan zoals je hier kan zien.
Enkele voorbeelden:
DateTime methoden
Ieder DateTime
object dat je aanmaakt heeft en hoop nuttige methoden.
Add Methods
Deze methoden kan je gebruiken om een bepaalde aantal dagen, uren, minuten en zo voort aan je huidige object toe te voegen. Al deze methoden geven steeds een nieuw DateTime object terug dat je moet bewaren wil je er iets mee doen:
AddDays
AddHours
AddMilliseconds
AddMinutes
AddMonths
AddSeconds
AddTicks
AddYears
Een voorbeeld:
(voorgaande kan ook in 1 lijn: DateTime nextWeek= DateTime.Now.AddDays(7)
)
Uiteraard mag je ook een bestaand object overschrijven met het resultaat van deze methoden:
DateTime properties
Properties (eigenschappen) zijn een zeer uniek aspect van C#. We zullen deze nog tot in den treuren leren maken. Via properties kan je de interne staat van objecten uitlezen én aanpassen, dit op een gecontroleerde manier.
Het fijne aan properties is dat :
je gebruikt ze alsof het gewone variabelen zijn
maar ze werken als methoden
Meer hierover later.
Enkele nuttige properties van DateTime
zijn:
Date
Day
DayOfWeek
DayOfYear
Hour
Millisecond
Minute
Month
Second
Ticks
TimeOfDay
Today
UtcNow
Year
Properties gebruiken
Sommige properties zijn read-only, andere kan je zowel naar schrijven als uitlezen. Alle properties van DateTime zijn read-only*..
Een voorbeeld:
Uiteraard mag je ook deze properties gebruiken om direct naar het scherm te schrijven:
Datum en tijd formateren
Je hebt een invloed op hoe DateTime objecten naar string worden opgezet. Je kan dit door door extra formatter syntax mee te geven.
Dit zie je in volgende voorbeeld:
Custom format
Wil je nog meer controle over de output dan kan je ook zelf je formaat specifieren.
Dit wordt hier volledig uit de doeken gedaan.
Localized time
De manier waarop DateTime
objecten worden getoond (via ToString) is afhankelijk van de landinstellingen van je systeem. Soms wil je echter op een andere manier dit tonen. Je doet dit door mee te geven volgens welke culture de tijd en datum getoond moet worden.
Dit vereist dat je eerst een CultureInfo
aanmaakt en dat je dan meegeeft:
Culture names
Een lijst van alle cultures in .NET kan je hier terugvinden. Opgelet, enkel indien een specifieke culture op je computer staat geïnstalleerd zal je deze kunnen gebruiken.
Static method
Sommige methoden zijn static
dat wil zeggen dat je ze enkel rechtstreeks op de klasse kunt aanroepen. Vaak zijn deze methoden hulpmethoden waar de individuele objecten niets aan hebben.
Parsing time
Parsen laat toe dat je strings omzet naar DateTime
. Dit is handig als je bijvoorbeeld de gebruiker via ReadLine
tijd en datum wilt laten invoeren:
Zoals je ziet roepen we Parse
aan op DateTime
en dus niet op een specifiek object.
IsLeapYear
Deze nuttige methode geeft een bool
terug om aan te geven het meegegeven object eens schrikkeljaar is of niet:
TimeSpan (PRO)
Je kan DateTime objecten ook bij mekaar optellen en aftrekken. Het resultaat van deze bewerking geeft echter NIET een DateTime object terug, maar een TimeSpan
object. Dit is een object dat dus aangeeft hoe groot het verschil is tussen de 2 DateTime objecten:
Oefening
Klokje
Maak een applicatie die bestaat uit een oneindige loop. De loop zal iedere seconde pauzeren: System.Threading.Thread.Sleep(1000);
. Vervolgens wordt het scherm leeg gemaakt en wordt de huidige tijd getoond. Merk op dat ENKEL de tijd wordt getoond, niet de datum.
Verjaardag
Maak een applicatie die aan de gebruiker vraagt op welke dag hij jarig is. Toon vervolgens over hoeveel dagen z'n verjaardag dan zal zijn.
Last updated