处理TimeSpan中的负时间

时间:2017-10-23 07:07:50

标签: 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: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;
}

2 个答案:

答案 0 :(得分:1)

如果我正确地阅读了您的问题,您应该更改以下内容(只有在allow0时才会出现这种情况):

if  (allow == -allow)`

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

if (allow <= TimeSpan.Zero)

或者更简单:

allow = TimeSpan.Parse("03:30:00");

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

答案 1 :(得分:0)

您的if声明没有按照您的描述进行操作:

allow = totalTime - allow;
if  (allow == -allow)

仅当allow为0时才会出现这种情况!

如果您想知道totalTime是否大于允许的最大值。我期待像

这样的东西
if (totalTime > allow)

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