2017-04-06 11 views
0

現在、DateTime変数を使用してさまざまな日付の間の移動コストを調べるプロジェクトに取り組んでいます。ほとんどのクリックイベントは発生しますが、合計価格と平均価格の計算は実行されません。どんな助けもありがとう。あなたは、価格を計算前TextBoxテキストの値を設定しているので、C#whileループのDateTime変数には計算が行われません

private void btnCalculate_Click(object sender, EventArgs e) 
     { 
      DateTime arrival = DateTime.Parse(txtArrivalDate.Text); 
      DateTime departure = DateTime.Parse(txtDepartureDate.Text);      
      TimeSpan numDays = departure - arrival; 
      int ndays = numDays.Days; 
      txtNights.Text = ndays.ToString(); 
      decimal totalPrice = 0; 
      txtTotalPrice.Text = totalPrice.ToString("c"); 
      decimal avprice = totalPrice/ndays; 
      txtAvgPrice.Text = avprice.ToString("c"); 
      DateTime nightToCharge = arrival; 
      decimal pricePerNight = 0m; 
      int i = ndays; 
      while (i > 0) 
      { 
       DayOfWeek dayOfweek = nightToCharge.DayOfWeek; 
       if (dayOfweek == DayOfWeek.Friday || 
        dayOfweek == DayOfWeek.Saturday) 
       { 
        pricePerNight = 150m; 
       } 
       else 
       { 
        pricePerNight = 120m; 
       } 
       i--; 
       nightToCharge = nightToCharge.AddDays(1); 
       totalPrice += pricePerNight; 
      } 

     } 
+2

質問望ましい行動を含める必要があり、特定の問題かエラーとその問題自体を再現するのに必要な最短のコードです。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:最小、完全、および検証可能な例を作成する方法。 –

+2

私はすでにあなたの問題を知ることができます - > 'int ndays = numDays.Days;' 'TotalDays'を使う必要があります。これを使って、まだ問題がある場合には、問題を再確認してください。 –

+1

あなたは 'totalPrice'を計算していて、結果を放棄しているようです。 whileループの後に 'txtTotalPrice.Text = totalPrice.ToString()'を追加してください。 – Aron

答えて

0

あなたの価格が表示されていません。

は、ここでは、コードです。また、合計を計算する前に平均価格を設定しています。

だけで平均値を計算し、whileループ後の価格の値を割り当てます(「?なぜ、このコードが動作していない」)、デバッグの助けを求めている

​​3210
+0

ありがとうございます。あなたは私の問題を解決しました。 – Venomsamurai

関連する問題