我有一个声明...
if (lastInvoice.Invoice_Date < DateTime.Now.AddMonths(-12))
这将检查发票上的日期,如果它少于 12 个月前,即 2012 年 1 月之前的任何内容,请继续使用代码。
所以而不是日期时间.现在.添加月份(-12))我想说从发票上的日期算起6个月
我试过了...
if (lastInvoice.Invoice_Date < lastInvoice.Invoice_Date.AddMonths(-0-worksite.Number_of_Months))
也尝试没有 (-0) 并且只是将其作为 (0),但需要 - 作为表达式。无论如何,它没有返回它应该是什么。我做错了什么?
lastInvoice.Invoice_Date
永远不会小于lastInvoice.Invoice_Date.AddMonths(-anything)
。
这应该适合您:
if (lastInvoice.Invoice_Date < DateTime.Now.AddMonths(-worksite.Number_of_Months))
如果这不能给你正确的答案,我会使用调试器来确认那个工作地点。Number_of_Months实际上是您所期望的。
if (lastInvoice.Invoice_Date < lastInvoice.Invoice_Date.AddMonths(-0-worksite.Number_of_Months))
您正在将Invoice_Date
与自身进行比较。 您可能想与DateTime.Now
进行比较?
确保返回类型worksite.Number_of_Months
整数, 否则使用-Convert.ToInt32(worksite.Number_of_Months)
,您应该将其与DateTime.Now()
进行比较
根据我上面评论的答案,我认为您想要:
if (DateTime.Now > lastInvoice.Invoice_Date.AddMonths(6))
或者更准确地说:
if (DateTime.Now > lastInvoice.Invoice_Date.AddMonths(worksite.Number_of_Months))