C# 中的日期减法

本文关键字:日期 | 更新日期: 2024-11-01 03:58:24

我的任务是从固定日期减去当前日期时获得天数。

<script language="C#" runat="server">
    System.DateTime thisDay = DateTime.Today;
    System.DateTime dateCountFrom = new DateTime(2016, 6, 1, 0, 00, 00);
</script>

所以我有 2 个约会,一切都很顺利。但是我怎样才能从另一个中减去一个呢?

 (dateCountFrom-thisDay).totaldayscount;

导致错误,尝试其他方法 - 相同的结果。

我只有这样做才能成功:

<%= ((DateTime.Now-(new DateTime(2016,6,1))) *-1).TotalDays %>

但是我需要评估结果并乘以 -1。

任何想法我该怎么做?

C# 中的日期减法

你应该使用 DateTime.Subate 方法,这将返回一个 TimeSpan 变量,其中包含日期之间的时间差

TimeSpan diff = dateCountFrom.Subtract(DateTime.Now);
diff = TimeSpan.FromTicks(diff.Ticks * -1);

相反,如果你想让它乘以 -1,你可以做相反的总和

TimeSpan diff = DateTime.Now.Subtract(dateCountFrom);

(thisDay - dateCountFrom).TotalDays(dateCountFrom-thisDay).TotalDays都是完全合法的,不会导致错误。唯一的区别是,一个结果是负面的,另一个结果是积极的。

如果您只需要两个日期之间的天数,无论哪个日期晚一点,都可以使用

int days = Math.Abs((thisDay - dateCountFrom).TotalDays)

如果您知道,其中一个日期将始终比另一个日期晚(例如dateCountFrom将永远在未来)将其用作减号(即减去的日期),另一个用作减去的日期(即减去的日期)。然后天数也将始终为正数。