Cara mendapatkan Total jam di c #, bisa lebih dari 24 jam [tutup]
Saya membutuhkan total jam kerja dalam satu bulan
ex : 7:30 + 8:00 + 6:30 +9:30 its 31:30
saya butuh jawaban saat 31:30
saya mencoba dengan 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;
}
Saya mendapatkan Total seperti 1.06: 21: 00 (jika lebih dari 24 jam), saya tidak ingin seperti ini
Biarkan saya membantu, jika saya melakukan kesalahan atau saya akan melakukan sesuatu yang berbeda dari ini
Jawaban
Dengan ini Anda mendapatkan jam dan menit terpisah:
// 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");
Coba gunakan Menit untuk menghitung, dengan format akhir dalam Jam.
Kode ini akan membantu Anda:
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);
Gunakan TimeSpan.TotalHours
properti.
Anda dapat melakukan operasi aritmatika dengan TimeSpans untuk mendapatkan TimeSpan
hasil dan kemudian mendapatkan TotaHours
propertinya seperti ini
double totalHours = (TimeSpan.FromDays(1) + TimeSpan.FromHours(7)).TotalHours;
totalHours
akan memiliki nilai 31 dalam kasus ini.
dengan menggunakan Properti TimeSpan.Hours:
// Buat nilai TimeSpan dengan sejumlah besar tick. Console.Write ("\ n {0, -45}", "TimeSpan (111222333444555)"); ShowTimeSpanProperties (TimeSpan baru (111222333444555));
Console.WriteLine ("{0, -12} {1,8} {2, -18} {3,21: N3}", "Hours", interval.Hours, "TotalHours", interval.TotalHours);
sumber: https://docs.microsoft.com/en-us/dotnet/api/system.timespan.hours?view=net-5.0