2017-09-27 10 views
0

これは四半期ベースの回答ですが、他の請求期間まで延長する必要があります。私はサークルに行っていて、道を見つけることができません!現在の請求期間の終了を確認

Dynamics 365(オンライン)で動作するC#コンソールアプリケーションを作成していますが、これは数学的な質問が多いと思います。

私には、今後更新日が設定されている会社があります。 2018年1月2日(1月2日)。

新しいオーダーの請求期間は、月ごと、四半期ごと、年2回、年ごとのいずれかです。 更新日から逆算している現在の請求期間の終了日を計算する必要があります。ここで

あなたは四半期を考慮せずに、などヶ月を扱うようにするために、私はこれまで

DateTime contractRenewal = new DateTime(2018, 02, 01); 
int MonthsInBillPeriod = getBillingPeriod() //returns 1 for monthly, 3 for quarterly etc. 
int currQuarter = (DateTime.Now.Month - contractRenewal.Month)/MonthsInBillPeriod + 1; 
int month = currQuarter * MonthsInBillPeriod + contractRenewal.Month; 
while (month > 12) 
    month = month - MonthsInBillPeriod; 
renewal = new DateTime(DateTime.Now.AddMonths(month).Year, month, 1).AddDays(-1); //should return 30/09/2017 for monthly. 31/10/2017 for quarterly. 31/01/2018 for biannual and annual given contractRenewal date 

答えて

1

持っていることは十分にそれではないですか?このように:

DateTime tmpRenewal = contractRenewal; 
while(tmpRenewal > DateTime.Now) 
{ 
    tmpRenewal = tmpRenewal.AddMonths(-MonthsInBillPeriod); 
} 

// need to go one period forward, to the future from Now (as we are in the past right now) 
DateTime renewal = tmpRenewal.AddMonths(MonthsInBillPeriod).AddDays(-1); 
+0

ありがとう、それは問題を単純化し、解決しました! –

関連する問題