【问题标题】:Get the Friday and Saturday night of each day获取每天的周五和周六晚上
【发布时间】:2018-11-03 21:34:22
【问题描述】:

问题是我需要在每周六和周五晚上找到并在周五或周六向他们收取 140 美元。我应该使用while循环吗?

  DateTime ArrivalDate = DateTime.Parse(txtArrivalDate.Text);

        DateTime DepartureDate = DateTime.Parse(txtDepartureDate.Text);

        TimeSpan numberOfNights = DepartureDate.Subtract(ArrivalDate);

        decimal nights = numberOfNights.Days;

        txtNights.Text = nights.ToString();
        //txtTotalPrice
        decimal pricePerNight = 120.00m;
        decimal totalNight = nights * pricePerNight;

        txtTotalPrice.Text = "$" + totalNight.ToString();
        txtAvgPrice.Text = "$" + pricePerNight.ToString();


              // finds the fridays
        decimal morePricePerNight = 140.00m;

        int i = 0;
        // while loop
             while (ArrivalDate.DayOfWeek != DayOfWeek.Friday)
        {
            ArrivalDate = ArrivalDate.AddDays(1);
        }

        while (DepartureDate.DayOfWeek != DayOfWeek.Friday)
        {
            DepartureDate = DepartureDate.AddDays(1);
        }

【问题讨论】:

  • 您可以使用一些数学运算来代替循环,然后计算两个日期之间的星期五和星期六的数量。
  • 不是完全重复但密切相关 - stackoverflow.com/q/248273/416574

标签: c# winforms


【解决方案1】:

为什么不只使用一个while循环呢?

我猜你可以写如下代码:

var date = DepartureDate;
while (date < ArrivalDate)
{   
    if (date.DayOfWeek == DayOfWeek.Friday || date.DayOfWeek == DayOfWeek.Saturday)
    {
        totalNight += 140.00m;          
    }

    date = date.AddDays(1);
}

【讨论】:

  • 一个 150.00 需要显示在文本框中,但是当我尝试输入 txtAvgPrice int 时,如果它没有显示。我需要把日期变成一个数组吗?
  • 我认为将日期放入数组中没有任何意义。尝试在循环后重新计算averagePrice并将其设置为txtAvgPrice.Text
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 2012-08-08
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多