Datatyp – mer exakt en klass – som lagrar tidpunkter.
// Datumet 10:e december 1815DateTime lovelaceBirthday =newDateTime(1815,12,10);// Tidpunkten 14:32:00 på datumet 1969-07-16DateTime apolloEleven =newDateTime(1969,8,16,14,32,0);
Egenskaper
Man kan få ut information ur DateTime-objekt genom att läsa av dess egenskaper. (Alla dessa är i själva verket properties.)
lovelaceBirthday.DayOfWeek; // vilken dag i veckan det ärlovelaceBirthday.Year;lovelaceBirthday.Month;lovelaceBirthday.Day; // Dag i månadenapolloEleven.Hour; // 14apolloEleven.Minute; // 32apolloEleven.Second; // 0apolloEleven.Millisecond; // 0
Metoder
Man kan justera ett DateTime-objekts innehåll genom att anropa dess metoder.
// Flytta fram klockanapolloEleven.AddYears(1);apolloEleven.AddMonths(2);apolloEleven.AddDays(14);apolloEleven.AddHours(2);apolloEleven.AddMinutes(30);apolloEleven.AddSeconds(10);apolloEleven.AddMilliseconds(300);
Alla dessa kan också användas för att flytta klockan bakåt – då stoppar man helt enkelt in negativa tal.
// Spara en kopia av tidpunkten "just nu" i variabeln startTimeDateTime startTime =DateTime.Now;
TimeSpan
Datatyp som beskriver ett tidsspann, till exempel "tiden mellan 26:e mars 1926 och 27:e februari 2015".
Om man subtraherar en DateTime från en annan DateTime så blir resultatet en TimeSpan.
DateTime leonardBirth =newDateTime(1926,3,26);DateTime leonardDeath =newDateTime(2015,2,27);TimeSpan life = leonardDeath - leonardBirth;
Tidsenheter i en TimeSpan
// DagarConsole.WriteLine(life.Days); // en int: 32480 hela dagar i spannetConsole.WriteLine(life.TotalDays); // en double, som inkluderar delar av dagar// TimmarConsole.WriteLine(life.Hours); // Timme-komponenten för spannet. Går mellan -23 och 23.Console.WriteLine(life.TotalHours); // En double: 779520 hela timmar i spannet// MinuterConsole.WriteLine(life.Minutes); // Minut-komponenten för spannet. Går mellan -59 och 59.Console.WriteLine(life.TotalMinutes); // En double: 46771200 minuter i spannet// SekunderConsole.WriteLine(life.Seconds); // Timme-komponenten för spannet. Går mellan -59 och 59.Console.WriteLine(life.TotalSeconds); // En double: 2806272000 sekunder i spannet// MillisekunderConsole.WriteLine(life.Milliseconds); // Timme-komponenten för spannet. Går mellan -59 och 59.Console.WriteLine(life.TotalMilliseconds); // En double: 2806272000000 millisekunder i spannet
Att mäta tid
Ett vanligt användningsområde för DateTime och TimeSpan är att mäta hur lång tid något tar.
DateTime start =DateTime.Now// Någon tung och jobbig kod körs härDateTime end =DateTime.NowTimeSpan span = end - start;Console.WriteLine("Det tog:");Console.WriteLine($"{span.Hours} timmar");Console.WriteLine($"{span.Minutes} minuter");Console.WriteLine($"{span.Seconds} sekunder");Console.WriteLine($"{span.Milliseconds} millisekunder");