【问题标题】:Calendar selection based on working days using C#使用 C# 根据工作日选择日历
【发布时间】:2021-09-02 07:45:05
【问题描述】:

我必须根据工作日选择基于日期的天数计算(例如:5.0、5.5、6.0)。 当我选择基于 5.5 天时,我想自动计算。 请帮我解决这个问题。

    private void SelectionChanged(SelectionChangedEventArgs obj)
            {
               if(Settings.WorkingDay == "5.0")
                {
                   // Code is working fine
                }
               else if(Settings.WorkingDay == "5.5")
                {
                    startDate = SelectedRange.StartDate.Date;
                    endDate = SelectedRange.EndDate.Date;
                    startDate.AddDays(1);
                    int days = 0;
                    for (DateTime date = startDate; date <= endDate; date = date.AddDays(1))
                    {
                        if (startDate.DayOfWeek != DayOfWeek.Sunday)
                        {
                            days++;
                        }
                        startDate = startDate.AddDays(1);
                    }
                    if(startDate.DayOfWeek != DayOfWeek.Saturday && endDate.DayOfWeek != DayOfWeek.Saturday)
                    {
                        Quantity = (days) - (Convert.ToDecimal(0.5));
                    }
                    else if(startDate.DayOfWeek != DayOfWeek.Saturday)
                    {
                        Quantity = (days);
                    }
                    Debug.WriteLine(Quantity.ToString());
                }
               else if(Settings.WorkingDay == "6.0")
                {
                   // Code is working fine
                }
            }

【问题讨论】:

  • 您要解决的问题是什么?您发布的代码有什么问题?
  • 例如:5.5个工作日,即周六为半天。当我在日历或日期选择器中选择起始日期和截止日期时。我想计算天数(如果它以星期六为 0.5 天)

标签: c# asp.net-mvc asp.net-core xamarin.forms c#-4.0


【解决方案1】:

试试这个

double qty = 0.0;

for (DateTime date = startDate; date <= endDate; date = date.AddDays(1))
{
   if (date.DayOfWeek == DayOfWeek.Sunday)
   {
      // do nothing
   } 
   elseif (date.DayOfWeek == DayOfWeek.Saturday)
   {
      qty += 0.5;
   } 
   else 
   {  
      qty ++ 1;
   }
}

【讨论】:

  • “不工作”不是一个有用的描述。你使用什么输入?预期结果和实际结果是什么?
猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多