0

我有一个声明...

if (lastInvoice.Invoice_Date < DateTime.Now.AddMonths(-12))

这会检查发票上的日期,如果它是 2012 年 1 月之前的 12 个月前的任何内容,请继续使用代码。

所以不是 dateTime.Now.AddMonths(-12)) 我想说的是从发票日期算起的 6 个月

我试过了...

if (lastInvoice.Invoice_Date < lastInvoice.Invoice_Date.AddMonths(-0-worksite.Number_of_Months))

也尝试不使用 (-0) 并将其作为 (0) 但需要 - 用于表达式。无论如何,它并没有返回它应该是什么。我究竟做错了什么?

4

4 回答 4

1
if (lastInvoice.Invoice_Date < lastInvoice.Invoice_Date.AddMonths(-0-worksite.Number_of_Months))

你在Invoice_Date和自己比较。您可能想与之比较DateTime.Now

于 2013-01-24T17:44:05.123 回答
1

确保worksite.Number_of_Months返回类型是整数,否则使用-Convert.ToInt32(worksite.Number_of_Months)并且您应该将其与DateTime.Now()

于 2013-01-24T17:44:28.397 回答
1

lastInvoice.Invoice_Date永远不会小于lastInvoice.Invoice_Date.AddMonths(-anything)

这应该适合你:

if (lastInvoice.Invoice_Date < DateTime.Now.AddMonths(-worksite.Number_of_Months))

如果这没有给你正确的答案,我会使用调试器来确认 worksite.Number_of_Months 实际上是你所期望的。

于 2013-01-24T17:40:41.540 回答
1

根据我上面评论的答案,我认为你想要:

if (DateTime.Now > lastInvoice.Invoice_Date.AddMonths(6))

或者更准确地说:

if (DateTime.Now > lastInvoice.Invoice_Date.AddMonths(worksite.Number_of_Months))
于 2013-01-24T17:46:15.590 回答