首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DateOnly中减去C#

在DateOnly中减去C#
EN

Stack Overflow用户
提问于 2022-05-19 13:41:54
回答 5查看 1.8K关注 0票数 14

在C#中,我不能与DateOnly变量一起使用减法,这与DateTime不同。有什么解释吗?

代码语言:javascript
复制
  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'
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2022-05-19 13:57:43

从概念上说,DateOnly表示一天的一天,而不是午夜或给定一天中的任何其他特定时间,因此从另一天减去一个DateOnly在逻辑上不能像DateTime减法算子那样返回TimeSpan

如果要在DateOnly上执行算术,则需要对所需的单元进行明确说明。

DateOnly具有一个DayNumber属性,该属性返回01/01/0001以来的一整天数,因此,如果要确定2个DateOnly值之间的完整天数,可以执行以下操作:

代码语言:javascript
复制
var d = new DateOnly(2000, 01, 01);
var e = new DateOnly(1999, 01, 01);

var daysDifference = d.DayNumber - e.DayNumber;
票数 30
EN

Stack Overflow用户

发布于 2022-05-19 13:57:16

您可以使用DayNumber属性进行减法,f将保持d和e之间的天数。

代码语言:javascript
复制
var f = d.DayNumber - e.DayNumber;
票数 7
EN

Stack Overflow用户

发布于 2022-08-03 17:46:28

想想这个:2022年6月2日-2022年6月1日=?答案是1还是答案2?它包含整整两天,但差别是1。强迫我们使用DayNumber,只有一个可能的答案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72305654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档