Programmieren in C# Uhrzeit berechnen?

3 Antworten

TimeOnly time = new TimeOnly(10, 0);
time = time.AddHours(h);

Wer Suchmaschinen benutzen kann ist klar im Vorteil.
Und wer behauptet, nichts gefunden zu haben, kann scheinbar nicht lesen.

Woher ich das weiß:Berufserfahrung

Zunächst berechnest du die Anfunktszeit als Summe von Abfahrtszeit und Fahrtdauer:

static float ankunft;  
ankunft = abfahrtszeit + time;

Du hast dann die Ankunftszeit in Dezimalschreibweise. Um daraus Stunden, Minuten und Sekunden zu machen, sind folgende Rechenschritte erforderlich:

  1. ganze Stunden bestimmen - das geschieht durch Abtrennen des nicht ganzzahligen Rests, wofür die die Funktion Math.Truncate() verwenden kannst.
  2. Erhaltenen Rest mit 60 multiplizieren. Das Ergebnis sind die verbleibenden Minuten der Fahrzeit in dezimaler Form.
  3. die ganzen Minuten bestimmen - das geschieht wieder durch abtrennen des nicht ganzzahligen Rests.
  4. Den erhaltenen Rest mit 60 multiplizieren. Das Ergebnis sind die restlichen Sekunden der Fahrzeit in dezimaler Form.
  5. Die Sekunden runden.

Der Code könnte etwas so aussehen:

long int stunden, minuten, sekunden;
long double ganzerTeil, rest;
 /*  vorbereitende Rechnungen hier:  */

ganzerTeil = Math.Truncate(ankunft);  /* ganze Stunden */
stunden = Convert.ToInt32(ganzerTeil);
rest = (ankunft- ganzerTeil)* 60;   /*  Restzeit in Minuten */
ganzerTeil = Math.Truncate(rest); /*  ganz Minuten */
minuten = Convert.ToInt32(ganzerTeil);
rest = (rest - ganzerTeil)*60;    /* Restzeit in Sekunden */
sekunden = Convert.ToInt32(Math.Round(rest))

Vielleicht möchtest du ds mal ausprobieren

Woher ich das weiß:Berufserfahrung – Berufstätigkeit als Software-Entwickler
Palladin007  07.09.2022, 18:58

Oder einfach existierende Funktionen von .NET nutzen:

DateTime, DateTimeOffset, oder TimeOnly

0

Du musst genauso wie du das im Mathematik Unterricht gelernt hast die Stunden mit Kommazahl in Stunden, Minuten und Sekunden umrechnen.

Tipp: 60 Min = 1h