C# 处理TimeSpan中的负时间

C# 处理TimeSpan中的负时间,c#,rows,timespan,C#,Rows,Timespan,如何在TimeSpan中处理负时间 如果时间为负数,则应00:00:00。这是我尝试过的代码,但在if语句中不起作用 RepGrd.Rows[ii].Cells[0].Value = ds1.Tables[0].Rows[j][1]; RepGrd.Rows[ii].Cells[1].Value = ds.Tables[0].Rows[i][1]; RepGrd.Rows[ii].Cells[2].Value = totalTime; allow = TimeSpan.Parse("03:3

如何在
TimeSpan
中处理负时间

如果时间为负数,则应
00:00:00
。这是我尝试过的代码,但在
if
语句中不起作用

RepGrd.Rows[ii].Cells[0].Value = ds1.Tables[0].Rows[j][1];

RepGrd.Rows[ii].Cells[1].Value = ds.Tables[0].Rows[i][1];

RepGrd.Rows[ii].Cells[2].Value = totalTime;
allow = TimeSpan.Parse("03:30:00");
allow = totalTime - allow;
if  (allow == -allow)
{
    RepGrd.Rows[ii].Cells[3].Value = "00:00:00";
}
else
{
    //TimeSpan allow_LateSet = TimeSpan.ParseExact("03:30", "HH:mm", new CultureInfo("en-US"));
    RepGrd.Rows[ii].Cells[3].Value = allow;
}

如果您的
语句不能满足您的要求,请执行以下操作:

allow = totalTime - allow;
if  (allow == -allow)
只有当
allow
为0时,这才是真的

如果您想知道
totalTime
是否大于允许的最大值。我期待着类似的事情

if (totalTime > allow)

当然,您不能在代码中使用该变量,因为您覆盖了
allow
变量,因此我建议您使用单独的变量来计算
totalTime
allow
之间的差异,如果您需要该差异。

如果我正确阅读了您的问题,您应该更改以下内容(只有当
allow
0
时,该值才会为真):

对此(检测允许值是否小于或等于00:00:00

if (allow <= TimeSpan.Zero)

你所说的“如果时间为负数应该是00:00:00”是什么意思还不清楚。如果你提供了一个-我非常怀疑所有的行/单元格部分是否相关,它们意味着我们不能轻易地重现这个问题。你能解释一下你想做什么吗?在
单元格[3]应该做什么
3:30
如果小于
totalTime
0:00
如果不小于?或者减法和
0:00
如果为负数?@sabribamerhol那太糟糕了。然后你必须提供更多关于实际发生的情况、你实际期望的情况以及你如何更改代码的信息。当然,只要更改你的
if
语句将不起作用,但我已经解释过…@SabriBamerhool请解释您所说的“不起作用”的意思:任何错误(请指定)?不是您期望的输出(您期望什么,您看到了什么)?
if (allow <= TimeSpan.Zero)
allow = TimeSpan.Parse("03:30:00");

RepGrd.Rows[ii].Cells[3].Value = totalTime > allow ? totalTime - allow : TimeSpan.Zero;