如何处理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;
}
答案 0 :(得分:1)
如果我正确地阅读了您的问题,您应该更改以下内容(只有在allow
为0
时才会出现这种情况):
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
变量,因此我建议您使用单独的变量来计算totalTime
和allow
如果你需要那种差异。