我在计算小时数时出错。您在下面看到的值取自数据库,我使用 C# 的任务是计算小时数的总和。我列出了下面的问题:1) 总错误时间,2) 正如您在数据网格视图中看到的,有一个时间为 9.7 小时,但不可能一个小时有 70 分钟!我把C#代码和相关数据网格视图放在下面,你能帮我解决吗?数据网格视图值:24-07-2018 9:7 08:3025-07-2018 0:0 08:30 26-07-2018 9:42 08:30Final sum-> 18:49 1:30C# 代码: private void buttonCarica_Click(object sender, EventArgs e) { dataGridViewPrincipale.Hide(); dataGridViewSecondario.Hide(); resetDataGrid(); string StartDate = dateTimePickerInizio.Value.Date.ToString("dd-MM-yy"); string EndData = dateTimePickerFine.Value.Date.ToString("dd-MM-yy"); Utente utemp = new Utente(comboBoxUtenti.Text); timemanager tm = new timemanager(utemp); PeopleController r = new PeopleController(utemp); DataTable dt = tm.CaricaDataeTotaleHour(StartDate, EndData); if (dt.Rows.Count == 0) { reset(); MessageBox.Show("\n ATTENZIONE: " + comboBoxUtenti.Text + " in questo range di tempo non ha effettuato marcature"); } else { labelTotaleHourWork.Show(); labelTotaleHourWorkMod.Show(); labelTotaleHourtimemanagerMod.Show(); labelTotaletimemanager.Show(); dataGridViewPrincipale.Show(); TimeSpan tempoSpanTotaleHourWork = TimeSpan.Zero; foreach (DataRow dr in dt.Rows) { String TotaleHourWork = r.CaricaHourGiornaliere(dr["Data"].ToString()); if (TotaleHour.Equals("0") == false) { TotaleHourWork = TotaleHourWork.Replace(",", ":"); tempoSpanTotaleHourWork = SommaHour(TotaleHourWork, tempoSpanTotaleHourWork); } if (tempoSpanTotaleHourWork == TimeSpan.Zero) { TotaleHourWork = "0"; }函数 CheckValue.ConversioneTimeSpantoString :public static String ConversioneTimeSpantoString(TimeSpan tm){ return "" + tm.Hours.ToString().Replace("-", "").ToString() + ":" + tm.Minutes.ToString().Replace("-", "").ToString();}
2 回答
鸿蒙传说
TA贡献1865条经验 获得超7个赞
在你的函数中 public static String ConversioneTimeSpantoString(TimeSpan tm)
改变
tm.Hours //-> the remining hours in this timespan (minus days)
到
tm.TotalHours //-> the sum of all hours in this timespan (included days, months, years)
温温酱
TA贡献1752条经验 获得超4个赞
TotaleHourWork.Replace(",", ":");
“9:7”表示9小时7分钟。“9,7”大概是指9,7小时,也就是9小时42分钟。
所以无论你认为这有什么作用,它都没有。它只是破坏了您的大部分数据。
停止进行字符串替换,获取您的日期,将其正确解析为 TimeSpans,然后使用它们计算您的数字。
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消