将负数.days转换为0
本文关键字:转换 days | 更新日期: 2023-09-27 18:21:28
我试图将"合同"的"结束日期"与datetime.now进行比较。显然,如果今天的日期超过了合同的结束日期,则返回的值为负数。我希望一个负值返回为0,而任何已经发生的结束日期都将返回为正值。
目前,正值工作正常,但负值返回为:
-41641
用于计算该值的代码如下:
var contractEndDate = contract.EndDate;
var ts = contractEndDate.Value.Subtract(DateTime.Now);
var contractDaysRemaining = ts.Days;
contractDaysMaining随后在代码中返回该值。
我对c#还很陌生,我想知道如何将负contractDaysRemaining转换为0,同时保持正值不变。
提前感谢!
Math.Max()
。
var contractDaysRemaining = Math.Max(ts.Days, 0);
Max()
返回两个值中较高的一个,所以如果将0
作为其中之一,它只会影响负数。
我强烈建议大家也看看数学课上的其他方法,因为那里有很多有用的方法。例如Round()
。
类似这样的东西:
var contractDaysRemaining = ts.Days < 0 ? 0 : ts.Days;
var contractDaysRemaining = Math.Max(ts.Days, 0);
它取值的最大值或零。你也可以做:
var contractDaysRemaining = ts.Days < 0 ? 0 : ts.Days;
不太清楚。
var contractDaysRemaining = ts.Days > 0 ? ts.Days : 0;
if(contractDaysRemaining < 0)
contractDaysRemaining = 0
只需在的末尾添加该行