TimeSpan Earlybeforetime = new TimeSpan();
Earlybeforetime = earlybefore.Subtract(Convert.ToDateTime(outtime);

有时它返回一个负值。如何将值始终转换为正值?

最佳答案

您可以使用Negate()将负值更改为正值

MSDN



因此,您可以根据哪个值更大而调用Negate方法,并获得一个正的Timespan
假设我们有startDateendDate(endDate大于startDate),那么当我们这样做时startDate.Subtract(endDate)我们将得到一个否定的TimeSpan。因此,基于此检查,您可以转换负值。因此,如果您的超时时间早于之前,则会给您带来负面的时间跨度

编辑

请检查Duration()TimeSpan,这应始终为您提供绝对值
Earlybeforetime.Duration()

关于c# - 从负值到正转换的时间跨度差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8923139/

10-11 21:04