Comment obtenir le nombre total d'heures en c #, cela peut prendre plus de 24 heures [fermé]
J'ai besoin d' heures de travail totales dans un mois
ex : 7:30 + 8:00 + 6:30 +9:30 its 31:30
j'ai besoin d'une réponse comme 31:30
j'ai essayé avec TimeSpan
// create new timespan
TimeSpan total = TimeSpan.Zero;
// iterate through items
foreach (var count in model.Items)
{
TimeSpan totalDonationSum = TimeSpan.Parse(count.Hours);
total += totalDonationSum;
}
J'obtiens le total comme 1.06: 21: 00 (si plus de 24 heures), je ne veux pas comme ça
Laisse-moi t'aider, si je fais quelque chose de mal ou je ferai autre chose que ça
Réponses
Avec cela, vous obtenez des heures et des minutes séparées:
// 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");
Essayez d'utiliser les minutes pour calculer, au format final en heures.
Ce code devrait vous aider:
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);
Utilisez la TimeSpan.TotalHours
propriété.
Vous pouvez effectuer des opérations arithmétiques avec TimeSpans pour obtenir un TimeSpan
résultat, puis obtenir sa TotaHours
propriété comme ceci
double totalHours = (TimeSpan.FromDays(1) + TimeSpan.FromHours(7)).TotalHours;
totalHours
aura une valeur de 31 dans ce cas.
en utilisant la propriété TimeSpan.Hours:
// Crée une valeur TimeSpan avec un grand nombre de graduations. Console.Write ("\ n {0, -45}", "TimeSpan (111222333444555)"); ShowTimeSpanProperties (nouveau TimeSpan (111222333444555));
Console.WriteLine ("{0, -12} {1,8} {2, -18} {3,21: N3}", "Hours", interval.Hours, "TotalHours", interval.TotalHours);
la source: https://docs.microsoft.com/en-us/dotnet/api/system.timespan.hours?view=net-5.0