之前我在表中有一个双精度格式,以便我可以整理列,并在表的末尾获得"Saldo“的结果,我如何使用DATETIME来做这件事呢?

if (e.RowIndex == this.dataGridView1.NewRowIndex)
{
e.CellStyle.Font = new Font(e.CellStyle.Font, FontStyle.Bold);
e.CellStyle.ForeColor = Color.Red;
switch (e.ColumnIndex)
{
case 0:
//e.Value = "Saldo";
// e.Value = benutzer;
break;
case 1:
double sum = 0.0d;
for (int i = 0; i < this.dataGridView1.NewRowIndex; i++)
{
var value = this.dataGridView1[1, i].Value;
if (value is double)
{
sum += ((double)value);
}
}
e.Value = "Saldo: " + Math.Round(sum, 1);
break;
case 2:
e.Value = benutzer;
break;
}
}感谢大家的帮助
发布于 2017-12-21 18:10:15
显然,value不是双精度的,所以和永远不会改变。更改代码
if (value is double)
{
sum += ((double)value);
}至
if (value is TimeSpan)
{
sum += ((TimeSpan)value).TotalHours;
}TotalHours属性以double类型的小数值形式返回小时数,例如8.5。另请参阅Documentation of the TotalHours property。
如果您希望得到类似于17:30:00的输出,则应将这些值求和为TimeSpan,如下所示:
case 1:
TimeSpan sum = TimeSpan.FromHours(0.0);
for (int i = 0; i < this.dataGridView1.NewRowIndex; i++)
{
var value = this.dataGridView1[1, i].Value;
if (value is TimeSpan)
{
sum += ((TimeSpan)value);
}
}
e.Value = "Saldo: " + sum;
break;https://stackoverflow.com/questions/47922336
复制相似问题