2017-04-06 80 views
0

我目前正在使用DateTime變量來查找各種日期之間的旅行成本的項目。大部分點擊事件都會觸發,但總價格和平均價格的計算不會運行。任何幫助,將不勝感激。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

你的價格,因爲你設置前TextBox文本的價值,你計算價格。在計算總額之前,您還要設置平均價格。

只是計算平均值和while循環分配後的價格值:

​​3210
+0

謝謝你們。你解決了我的問題。 – Venomsamurai