循环运行一周,不要选择周末

Joh*_*ohn 0 c# asp.net asp.net-mvc

因此,用户可以从2个日历中选择2个不同的日期,开始日期和结束日期,当他们点击add所选日期之间的日期时,将添加到数据库中,每个日期作为单独的记录.

这工作正常,但我不希望周末添加到数据库.

我已更新了datepicker的用户界面http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/datePickerCustomCellRender.html, 但如果用户选择fri-mon,fri,sat,sun and mon则会将其添加到数据库中.如果datyofweek不是星期六或星期日,我试图只运行代码

 public ActionResult listHolidays(Holiday holiday, int? PersonId, string HolidayDate, string endDate)
        {
            DateTime startDates = Convert.ToDateTime(HolidayDate),
                     endDates = Convert.ToDateTime(endDate);

            while (startDates <= endDates)
            {
                if (startDates.DayOfWeek != DayOfWeek.Saturday || startDates.DayOfWeek != DayOfWeek.Sunday)
                {
                    Holiday holiday1 = new Holiday();
                    holiday1.PersonId = PersonId.Value;
                    holiday1.HolidayDate = startDates;

                    db.Holidays.AddObject(holiday1);
                    db.SaveChanges();


                     startDates = startDates.AddDays(1);
                }
            }

            return RedirectToAction("Index");
        }
Run Code Online (Sandbox Code Playgroud)

任何帮助?谢谢

Dan*_*rth 5

您需要使用AND而不是OR:

if (startDates.DayOfWeek != DayOfWeek.Saturday && startDates.DayOfWeek != DayOfWeek.Sunday)
Run Code Online (Sandbox Code Playgroud)

您目前的状况将永远如此.如果startDatesDayOfWeek.Saturday,则不是DayOfWeek.Sunday,反之亦然.

在那之后,你需要把startDates = startDates.AddDays(1);外面的if.

否则,你将有一个无限循环,因为只要startDates就是DayOfWeek.Saturday,它将不再递增.