Wie bekomme ich Gesamtstunden in c #, es könnte mehr als 24 Stunden sein [geschlossen]

Dec 18 2020

Ich brauche die Gesamtarbeitszeit in einem Monat

ex : 7:30 + 8:00 + 6:30 +9:30 its 31:30Ich brauche eine Antwort, als 31:30ich es mit TimeSpan versuchte

 // create new timespan
  TimeSpan total = TimeSpan.Zero;

 // iterate through items
  foreach (var count in model.Items)
   {
      TimeSpan totalDonationSum = TimeSpan.Parse(count.Hours);
      total += totalDonationSum;
   }

Ich bekomme die Summe wie 1.06: 21: 00 (wenn mehr als 24 Stunden), ich möchte nicht so

Lassen Sie mich helfen, wenn ich etwas falsch mache oder etwas anderes mache

Antworten

1 NathanielWalser Dec 18 2020 at 18:11

Damit erhalten Sie Stunden und Minuten getrennt:

// create new timespan
TimeSpan total = TimeSpan.Zero;

// iterate through items
foreach (var count in model.Items)
{
    TimeSpan totalDonationSum = TimeSpan.Parse(count.Hours);
    total += totalDonationSum;
}

// calculate
int hours = (int)total.TotalHours;
int minutes = total.Minutes;

// display
string time = hours.ToString("00") + ":" + minutes.ToString("00");
1 EltonBicalho Dec 18 2020 at 18:37

Versuchen Sie, Minuten im Endformat in Stunden zu berechnen.

Dieser Code soll Ihnen helfen:

int totalMinutes = 0;
foreach (var count in model.Items)
{
    DateTime totalDonationSum = DateTime.Parse(count.Hours);
    totalMinutes += (totalDonationSum.Hour*60) + totalDonationSum.Minute;
}

TimeSpan span = TimeSpan.FromMinutes(totalMinutes);
string hoursFormatThatYouWant = span.ToString(@"hh\:mm\:ss");

//If you use a console or you can change for MessageBox or Alert :)
Console.WriteLine("Total Hours:" + hoursFormatThatYouWant);
Agrgg Dec 18 2020 at 18:06

Verwenden Sie die TimeSpan.TotalHoursEigenschaft.

Sie können mit TimeSpans arithmetische Operationen ausführen, um ein TimeSpanErgebnis zu erhalten und dann seine TotaHoursEigenschaft wie folgt abzurufen

double totalHours = (TimeSpan.FromDays(1) + TimeSpan.FromHours(7)).TotalHours;

totalHours wird in diesem Fall den Wert 31 haben.

DurgeshSingh Dec 18 2020 at 18:49

mithilfe der TimeSpan.Hours-Eigenschaft:

// Erstelle einen TimeSpan-Wert mit einer großen Anzahl von Ticks. Console.Write ("\ n {0, -45}", "TimeSpan (111222333444555)"); ShowTimeSpanProperties (neues TimeSpan (111222333444555));

Console.WriteLine ("{0, -12} {1,8} {2, -18} {3,21: N3}", "Stunden", Intervall.Stunden, "Gesamtstunden", Intervall.Gesamtstunden);

Quelle: https://docs.microsoft.com/en-us/dotnet/api/system.timespan.hours?view=net-5.0