Wie bekomme ich Gesamtstunden in c #, es könnte mehr als 24 Stunden sein [geschlossen]
Ich brauche die Gesamtarbeitszeit in einem Monat
ex : 7:30 + 8:00 + 6:30 +9:30 its 31:30
Ich brauche eine Antwort, als 31:30
ich 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
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");
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);
Verwenden Sie die TimeSpan.TotalHours
Eigenschaft.
Sie können mit TimeSpans arithmetische Operationen ausführen, um ein TimeSpan
Ergebnis zu erhalten und dann seine TotaHours
Eigenschaft wie folgt abzurufen
double totalHours = (TimeSpan.FromDays(1) + TimeSpan.FromHours(7)).TotalHours;
totalHours
wird in diesem Fall den Wert 31 haben.
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