0

月額料金が 18 か月にわたってシステムによって計算されるシナリオがあります。たとえば、料金が 10$ だとします。次に、$10/18 = $0.56 の月額を計算します。

お客様が18ヶ月の途中でサービスをキャンセルした場合。彼が使用した月数を見つけて、残りを返金する必要があります。例: お客様が 2012 年 6 月 2 日に作成し、2012 年 8 月 13 日にキャンセルした場合、2 か月間完全に使用したため、返金する必要があり($10/18)* (18-2)ます。

4

3 に答える 3

0

これを計算するメソッドを作成できますが、より良い方法は、すべての計算を独自に行う必要がある日付オブジェクトを表す ADT を作成することです。

int chargeFor(int createdD,int createdM,int createdY,int canceledD,int canceledM,int canceledY){
   int deltaD = canceledD - createdD;
   int deltaM = canceledM - createdM;
   int deltaY = canceledD - createdD;

   if( deltaD != 0 )
      return result = deltaY * 12 + deltaM + 1; 
   else 
      return result = deltaY * 12 + deltaM; 

}
于 2012-08-04T15:34:19.190 に答える