在C#中,我不能与DateOnly变量一起使用减法,这与DateTime不同。有什么解释吗?
var a = new DateTime(2000, 01, 01);
var b = new DateTime(1999, 01, 01);
//var c = a.Subtract(b);
var c = a - b;
var d = new DateOnly(2000, 01, 01);
var e = new DateOnly(1999, 01, 01);
var f = d - e; // Error - Operator '-' cannot be applied to operands of type 'DateOnly' and 'DateOnly'发布于 2022-05-19 13:57:43
从概念上说,DateOnly表示一天的一天,而不是午夜或给定一天中的任何其他特定时间,因此从另一天减去一个DateOnly在逻辑上不能像DateTime的减法算子那样返回TimeSpan。
如果要在DateOnly上执行算术,则需要对所需的单元进行明确说明。
DateOnly具有一个DayNumber属性,该属性返回01/01/0001以来的一整天数,因此,如果要确定2个DateOnly值之间的完整天数,可以执行以下操作:
var d = new DateOnly(2000, 01, 01);
var e = new DateOnly(1999, 01, 01);
var daysDifference = d.DayNumber - e.DayNumber;发布于 2022-05-19 13:57:16
您可以使用DayNumber属性进行减法,f将保持d和e之间的天数。
var f = d.DayNumber - e.DayNumber;发布于 2022-08-03 17:46:28
想想这个:2022年6月2日-2022年6月1日=?答案是1还是答案2?它包含整整两天,但差别是1。强迫我们使用DayNumber,只有一个可能的答案。
https://stackoverflow.com/questions/72305654
复制相似问题