将负.days转换为0?

Ger*_*Ger 3 c# datetime negative-number

我试图将"合同"的"结束日期"与datetime.now进行比较.显然,如果今天的日期超过合约结束日期,则该值将返回为负数.我想要一个负值返回为0,而已发生的任何结束日期将返回为正值.

目前,正值正常工作,但负值返回为:

-41641

用于计算值的代码如下:

var contractEndDate = contract.EndDate;
var ts = contractEndDate.Value.Subtract(DateTime.Now);
var contractDaysRemaining = ts.Days;
Run Code Online (Sandbox Code Playgroud)

contractDaysRemaining然后在代码中返回值.

我对c#很陌生,想知道如何将负的ContractDaysRemaining转换为0,同时保持正值不变.

提前致谢!

Bob*_*son 8

为此,您要使用Math.Max().

var contractDaysRemaining = Math.Max(ts.Days, 0);
Run Code Online (Sandbox Code Playgroud)

Max()返回两个值中的较高者,因此如果您将其0作为其中一个值,则只会影响负数.

我强烈建议在Math类中查看其他方法,因为那里有很多有用的方法. Round(), 例如.