10 Datumhantering
DateTime-objektet i C# är mycket användbart om man ska arbeta med datum och/eller tid. Istället för att själv göra omräkningar mellan år, månader, dagar, timmar, sekunder etc. finns flertalet färdiga metoder som sköter detta åt oss och dessutom ger vår kod relativt god läsbarhet. Lägg så många som möjligt av nedanstående metoder och egenskaper på minnet.
Metod/Egenskap | Returnerar/Används till |
---|---|
new DateTime(2018, 8, 13) |
Skapar ett nytt DateTime -objekt med datumet 13 augusti 2018. |
new DateTime(2018, 8, 13, 9, 0, 0) |
Skapar ett nytt DateTime -objekt med datumet 13 augusti 2018 och tiden 09:00:00. |
DateTime.Now |
Skapar ett nytt DateTime -objekt med dagens datum och nuvarande tid. |
DateTime.Today |
Skapar ett nytt DateTime -objekt med dagens datum. |
DateTime.DaysInMonth(2018, 2) |
Returnera antalet dagar i februari 2018. |
DateTime.IsLeapYear(2019) |
Returnerar sant/falskt om 2019 är skottår eller inte. |
Om ett DateTime
-objekt har skapats (DateTime date = new DateTime();
) och tilldelats till en variabel kan sedan (bland annat) följande metoder/egenskaper användas.
Metod/Egenskap | Returnerar/Används till |
---|---|
date.AddDays(3) |
Returnerar ett nytt DateTime -objekt med ett datum tre dagar framåt jämfört med date . |
date.AddSeconds() , date.AddMinutes() , date.AddHours() , |
date.AddMonths() , date.AddYears()
|
date.DayOfWeek |
Returnerar veckodag för date . |
date.DayOfYear |
Returnerar dag på året för date (t.ex. är 2018-10-23 dag 296) |
date.Year , date.Month , date.Day , date.Hour , date.Minute , date.Second
|
Returnerar respektive enhet för date . |
date.ToShortDateString() |
Returnerar en sträng med datumet för date på formen ”yyyy-mm-dd”. |
Tänk på att många av ovanstående behöver man använda ToString()
på vid jämförelse med t.ex. en viss veckodag.
10.1 Övningar
Besvara nedanstående frågor genom att skriva små program i Visual Studio där du använder DateTime
och de tillhörande egenskaperna/metoderna.
Årets treor på ED tar studenten 2019-06-14. Vilken veckodag och dag på året är detta?
Vad kommer det vara för veckodag på dina närmaste 10 födelsedagar?
Hur många skottår kommer du ha varit med om innan du fyllt 30?
Vilka datum är dom närmsta fem kommande fredag den 13:e?
Redigera i din lösning till övning 24 så att de fem senaste fredag den 13:e visas istället.
Hur många dagar i februari månad har passerat sedan 2000-01-01?