【发布时间】:2018-07-27 15:57:11
【问题描述】:
您好,我必须执行总和,为此我使用下面的代码 c#:首先将 hourtot 转换为时间跨度,然后执行总和,最后我得到 08:30 的总和,这是不可能的,我该如何解决这个问题?是什么原因造成的?
C# 代码:
/*
hourtot values:
08:30
10:00
09:00
08:30
10:00
10:30*/
TimeSpan tot= TimeSpan.Zero;
foreach (DataRow dr in dt.Rows)
{
String hourtot= r.CaricaOreGiornaliere(dr["date"].ToString());
if(hourtot.Equals("00:00") == false)
{
TimeSpan hourcant= TimeSpan.Parse(hourtot.ToString());
tot= tot+ hourcant;
}
}
labelris.text = "" + tot.ToString(@"hh\:mm"); //this print 08:30
【问题讨论】:
-
是的,我确定...
-
tot.ToString()打印出什么? -
如果您想在几天、几小时和几分钟内得到答案,您可以使用:
tot.ToString(@"d\.hh\:mm") -
ToString(@"hh\:mm");正在截断小时 > 24 小时。请参阅:stackoverflow.com/questions/3505230/…
-
改用
string.Format("{0}:{1}", (int)tot.TotalHours, tot.Minutes)。