Sil*_*nus 37 c# .net-6.0 dateonly
在 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'
Run Code Online (Sandbox Code Playgroud)
Joh*_*lay 70
从概念上讲,DateOnly表示一整天,而不是午夜或给定日期的任何其他特定时间,因此DateOnly从另一个时间减去另一个时间不能在逻辑上返回TimeSpanas withDateTime的减法运算符。
如果要对DateOnlys 执行算术运算,则需要明确所需的单位。
DateOnly有一个属性,返回自 01/01/0001 以来的整日DayNumber数,因此如果您想确定两个值之间的整日数,可以执行以下操作:DateOnly
var d = new DateOnly(2000, 01, 01);
var e = new DateOnly(1999, 01, 01);
var daysDifference = d.DayNumber - e.DayNumber;
Run Code Online (Sandbox Code Playgroud)
小智 9
您可以使用 DayNumber 属性进行减法,f 将保存 d 和 e 之间的天数。
var f = d.DayNumber - e.DayNumber;
Run Code Online (Sandbox Code Playgroud)