0

私は声明を持っています...

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

これにより、請求書の日付がチェックされます。IEが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

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 (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

上記の私のコメントへの答えに応じて、私はあなたが望むと思います:

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 に答える