C#中的日期减法

时间:2016-04-21 09:48:54

标签: c#

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

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

所以我有两个约会,一切都很完美。但是我如何从另一个中减去一个呢?

 (dateCountFrom-thisDay).totaldayscount;

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

我只是通过这样做成功了:

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

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

我有什么想法可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

您应该使用DateTime.Subtract方法,这将返回包含日期之间时间差异的TimeSpan变量

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

而不是这个,如果你想要它乘以-1,你可以做相反的和

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

答案 1 :(得分:0)

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

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

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

如果您知道,其中一个日期将始终晚于另一个日期(例如dateCountFrom将来将永远)将此作为minuend(即日期,从中减去)和另一个作为减数(即减去的日期)。那么天数也总是正数。