現在、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;
}
}
質問望ましい行動を含める必要があり、特定の問題かエラーとその問題自体を再現するのに必要な最短のコードです。明確な問題文がない質問は、他の読者にとって有用ではありません。参照:最小、完全、および検証可能な例を作成する方法。 –
私はすでにあなたの問題を知ることができます - > 'int ndays = numDays.Days;' 'TotalDays'を使う必要があります。これを使って、まだ問題がある場合には、問題を再確認してください。 –
あなたは 'totalPrice'を計算していて、結果を放棄しているようです。 whileループの後に 'txtTotalPrice.Text = totalPrice.ToString()'を追加してください。 – Aron