0

所以 atm,每个工作站都有一张发票清单,有些工作站会有很多发票,有些则没有。每个发票列表按升序排序,最近的发票存储在“lastInvoice”中。

下面的代码检查最后一张发票上的日期,并将其与本月 -12 进行比较。如果发票日期为 < ,则将其存储在 selectedInvoicesForRetention 列表中。

if (lastInvoice.Invoice_Date < DateTime.Now.AddMonths(-12))
       {
        chosenInvoicesForRetention.Add(workstation);
       }

这一切都很好......但是不是 DateTime.Now.AddMonths(-12) 我想用存储在另一个表中的值替换它。

workstation.Number_of_Months

这将返回月数,即 1 到 12 之间

我玩过它运算符不能应用于'int'或system.datetime。

是否可以从 invoiceDate 中提取月份的值,并将其转换为 int,然后进行比较。作为 int 等....我在任何地方都正确吗?请指教...谢谢

4

3 回答 3

1

我不确定我是否正确理解了这个问题,但是;

if (lastInvoice.Invoice_Date < DateTime.Now.AddMonths(-1*workstation.Number_of_Months))
于 2013-01-24T16:10:50.113 回答
1

是否可以从 invoiceDate 中提取月份的值,并将其转换为 int,然后进行比较。

是的,你必须这样做:

int month_number = lastInvoice.Invoice_Date.Month
于 2013-01-24T16:10:50.707 回答
1

不确定我是否理解(再次),但为什么不

if (lastInvoice.Invoice_Date < DateTime.Now.AddMonths(0 - workstation.Number_of_Months))
       {
        chosenInvoicesForRetention.Add(workstation);
       }
于 2013-01-24T16:10:59.710 回答