Einführung


In diesem Tutorial lernst du, wie man mit VisualStudio in C# mit Datum und Uhrzeit arbeitet und wie man neue Instanzen von DateTime bzw. TimeSpan erstellt.

Die COUNT IT wünscht dir viel Spaß beim Experimentieren!

Vorbereitung


Öffne Visual Studio und erstelle eine neue Konsolenapplikation (Console Application).

Nun wurde das Projekt erstellt und bereits die Program.cs Datei geöffnet. Wird die App mit dem grünen Startbutton (oder mit F5) gestartet öffnet sich ein Konsolenfenster und der Code in der Main Methode wird aufgerufen.

Auf der Suche nach weiteren C# Tutorials?

Hier entlang

Los geht's!


Ausgabe in der Konsole

Als erstes wollen wir uns das aktuelle Datum und die aktuelle Uhrzeit in der Konsole ausgeben lassen.

Mit DateTime.Now wird ein neues DateTime Objekt erzeugt, welches das aktuelle Datum und die jetzige Uhrzeit beinhaltet. Um dieses Objekt in der Konsole auszugeben, müssen wir es in einen String (Text) umwandeln. Dafür gibt es die Methode ToString().

Diese Methode erkennt auch, in welchem Land man sich befindet und formatiert das Datum/Uhrzeit so, wie es für das Land typisch ist.

DateTime myValue = DateTime.Now; Console.WriteLine(myValue.ToString());
text/x-csharp

Die ToString() Methode gibt sowohl Datum, als auch die Uhrzeit aus. 

Will man nur das Datum ausgeben, gibt es die Methoden ToShortDateString() und ToLongDateString().

Will man nur die Zeit ausgeben, gibt es die Methoden ToShortTimeString() und ToLongTimeString().

Probiere es doch gleich mal aus:

Console.WriteLine(myValue.ToShortDateString()); Console.WriteLine(myValue.ToShortTimeString()); Console.WriteLine(myValue.ToLongDateString()); Console.WriteLine(myValue.ToLongTimeString());
text/x-csharp

Rechnen mit DateTime

Für das Rechnen mit DateTime gibt es verschiedene Funktionen. Hier sind ein paar Beispiele:

  • .AddDays(days)
  • .AddHours(hours)
  • .AddMinutes(minutes)

Methoden zum Subtrahieren wird man vergeblich suchen, denn sie werden auch nicht benötigt! Will man einen bestimmten Wert abziehen, so kann man einfach einen negativen Wert addieren!

Console.WriteLine(myValue.AddDays(3).ToLongDateString()); Console.WriteLine(myValue.AddHours(3).ToLongTimeString()); Console.WriteLine(myValue.AddDays(-3).ToLongDateString()); // Zieht 3 Tage ab
text/x-csharp

Die Add-Methoden addieren zum Datum den gewünschten Wert und geben das Ergebnis als neues DateTime zurück. So kann man direkt danach eine ToString-Methode aufrufen.

Ausgabe in der Konsole (Einzeln)

Oben habe ich bereits erklärt, wie man das DateTime Objekt als Datum und oder Uhrzeit in der Konsole ausgeben kann. Oft möchte man aber nur beispielsweise das Monat oder das Jahr ausgeben.

Für hat das DateTime-Objekt verschiedene Properties, wie beispielsweise .Month, .Year, .Day, .DayOfWeek, etc.

Console.WriteLine(myValue.Month); // Gibt das Monat aus Console.WriteLine(myValue.Day); // Gibt den Tag des Monats aus Console.WriteLine(myValue.DayOfWeek); // Gibt den Wochentag aus zb. Montag
text/x-csharp

Benutzerdefiniertes DateTime erstellen

Bisher habe ich nur gezeigt, wie man ein DateTime des jetzigen Datum bzw. Uhrzeit erstellt. Natürlich kann man ein DateTime auch von einem beliebigen Datum bzw. Uhrzeit erstellen. Hierfür gibt man dem Konstruktor Parameter mit.

DateTime birthday = new DateTime(2004, 3, 13); // Datum des 13.03.2004 DateTime customDateWithTime = new DateTime(2004, 3, 13, 15, 6, 0); // Datum des 13.03.2004 um 15:06:00
text/x-csharp

Man kann auch ein DateTime aus einem Text erstellen. Dafür gibt es die DateTime.Parse() Funktion. Diese Funktion nimmt einen String, wo das Datum (zb.: "13/3/2004") oder Datum und Uhrzeit (zb.: "13/3/2004 15:06:00") enthalten ist.

Wichtig ist hierbei, dass das Monat vor dem Tag kommt ("Monat/Tag/Jahr"). Für mehr Infos welche Formate des Strings möglich sind siehe die Microsoft Dokumentation.

DateTime birthdayStr = DateTime.Parse("13/3/2004"); // Datum des 13.03.2004 DateTime customDateWithTimeStr = DateTime.Parse("13/3/2004 15:06:00"); // Datum des 13.03.2004 um 15:06:00
text/x-csharp

Berechnen von Differenzen

Will man die Differenz von 2 DateTime Objekten berechnen kann man die .Subtract-Methode verwenden. Sie zieht vom DateTime ein 2tes DateTime ab. Die Methode gibt einen TimeSpan Objekt zurück, welcher die berechnete Zeitspanne ist.

TimeSpan myAge = DateTime.Now.Subtract(birthday); // Zieht vom heutigen Datum den Geburtstag ab Console.WriteLine(myAge.TotalDays); // Gibt das Alter (die Differenz) in Tagen aus
text/x-csharp

Du möchtest wissen, wie man Dateien einliest?

Klicke hier

Vollständiger Sourcecode


class Program { static void Main(string[] args) { DateTime myValue = DateTime.Now; Console.WriteLine(myValue.ToString()); Console.WriteLine(myValue.ToShortDateString()); Console.WriteLine(myValue.ToShortTimeString()); Console.WriteLine(myValue.ToLongDateString()); Console.WriteLine(myValue.ToLongTimeString()); Console.WriteLine(myValue.AddDays(3).ToLongDateString()); Console.WriteLine(myValue.AddHours(3).ToLongTimeString()); Console.WriteLine(myValue.AddDays(-3).ToLongDateString()); // Zieht 3 Tage ab Console.WriteLine(myValue.Month); // Gibt das Monat aus Console.WriteLine(myValue.Day); // Gibt den Tag des Monats aus Console.WriteLine(myValue.DayOfWeek); // Gibt den Wochentag aus zb. Montag DateTime birthday = new DateTime(2004, 3, 13); // Datum des 13.03.2004 DateTime customDateWithTime = new DateTime(2004, 3, 13, 15, 6, 0); // Datum des 13.03.2004 um 15:06:00 DateTime birthdayStr = DateTime.Parse("13/3/2004"); // Datum des 13.03.2004 DateTime customDateWithTimeStr = DateTime.Parse("13/3/2004 15:06:00"); // Datum des 13.03.2004 um 15:06:00 TimeSpan myAge = DateTime.Now.Subtract(birthday); // Zieht vom heutigen Datum den Geburtstag ab Console.WriteLine(myAge.TotalDays); // Gibt das Alter (die Differenz) in Tagen aus Console.WriteLine("Frohes Programmieren wuenscht deine COUNT IT!"); } }
text/x-csharp

Über Digital Dojo

Das Digital Dojo ist der virtuelle Übungsraum von COUNT IT.

Angehende Programmierer*innen, Code-Neulinge, Wiedereinsteiger*innen und Fortgeschrittene finden hier das nötige Rüstzeug für ihre Karriere.

Du möchtest deine Lehre bei COUNT IT starten? Dann bist du hier richtig - besiege deine Gegner im Dojo Game und sichere dir deine Lehrstelle!

Inspire your career.

Newsletter abonnieren

Der COUNT IT Newsletter liefert viermal jährlich interessante Neuigkeiten über das Unternehmen. Gleich anfordern!