C#DateTime数学 - 跨越前几个月

时间:2013-08-01 11:42:29

标签: c# datetime

我刚刚在今天的代码中发现了一个DateTime数学错误,8月1日,即新月的开始。 我将DateTime类成员设置为7天前的DateTime值。因此它应该在8月1日的价值将是7月25日

我在尝试从1(DateTime.Now.Day-7)中减去7时清楚地看到了问题。

那么如何创建一个始终可以工作的DateTime对象,无论它在哪个日期?

错误:

Year, Month, and Day parameters describe an un-representable DateTime.

以下是代码:

DateFrom = (new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day-7));

将此成员设置为7天前从当前DateTime开始的正确方法是什么?

3 个答案:

答案 0 :(得分:11)

DateTime.Now

中减去七天
DateFrom = DateTime.Now.Date.AddDays(-7);

答案 1 :(得分:2)

DateFrom date = DateTime.Now.AddDays(-7);

答案 2 :(得分:1)

您可以使用带整数的datetime对象的AddDays方法。因为它也是负值,所以你可以很容易地回到过去。

DateFrom = DateTime.Now.AddDays(-7);