C# 从数据库非列表中获取排除天数
因此,我必须从日期中获取结束期,并从日历中排除周六、周日和特定日期,因此我使用列表进行了设置,但我需要使用数据库进行设置,因为随着时间的推移,我可能需要添加一些额外的假日,我有数据库和一切设置添加我只需要得到的功能,将正确地读取数据从数据库和排除他们 下面是我如何使用列表创建的代码:C# 从数据库非列表中获取排除天数,c#,database,datetimepicker,C#,Database,Datetimepicker,因此,我必须从日期中获取结束期,并从日历中排除周六、周日和特定日期,因此我使用列表进行了设置,但我需要使用数据库进行设置,因为随着时间的推移,我可能需要添加一些额外的假日,我有数据库和一切设置添加我只需要得到的功能,将正确地读取数据从数据库和排除他们 下面是我如何使用列表创建的代码: List<DateTime> Holidays = new List<DateTime>() { new DateTime(2014, 01, 01),
List<DateTime> Holidays = new List<DateTime>()
{
new DateTime(2014, 01, 01),
new DateTime(2014, 04, 18),
new DateTime(2014, 12, 24),
new DateTime(2014, 12, 25),
new DateTime(2014, 12, 26),
new DateTime(2014, 12, 31)
};
public Form1()
{
InitializeComponent();
}
DateTime AddBusinessDays(int days, DateTime starDate)
{
DateTime tempdt = new DateTime(starDate.Year, starDate.Month, starDate.Day);
tempdt = ExHolidays(tempdt, Holidays);
if (tempdt > starDate.Date && !(days == 0))
tempdt = tempdt.AddDays(-1);
days = days - 1;
while (days > 0)
{
tempdt = tempdt.AddDays(1);
// ja sakuma diena ir brivdiena >>> nakamas darbadienas -1
tempdt = ExHolidays(tempdt, Holidays);
days = days - 1;
}
return tempdt;
}
DateTime ExHolidays(DateTime startDate, List<DateTime> holidays)
{
while (!IsWorkDay(startDate, holidays))
{
startDate = startDate.AddDays(1);
}
return startDate;
}
bool IsWorkDay(DateTime startDate, List<DateTime> holidays)
{
if ((startDate.DayOfWeek == DayOfWeek.Saturday || startDate.DayOfWeek == DayOfWeek.Sunday ||holidays.Contains(startDate)))
{
return false;
}
else
{
return true;
}
}
这一切都是可行的,我只是希望能够添加额外的假日日期,我认为最好的方法是通过数据库来实现这一点,这实际上取决于您想要显示的假日。一些假期是固定的,而另一些是一个月的第X天。例如,感恩节总是第四个星期四,因此您需要一个足够灵活的数据库设计来捕获它,然后在应用程序中构建将第四个星期四转换为实际日期的能力
但是,数据库选项很好,因为您只能将显示给用户的日期所在月份内存在的假期调回,而不必通过编程在代码中执行此操作。此链接可能会有所帮助,并且适用于C#。。不,这不是我要搜索的东西。我想知道如何使数据库与house 3功能一起工作基本上我想用数据库替换列表,但我所做的一切都不工作,但我想搜索的只是用户可以通过datagridview添加它,我已经设置好了所有功能,我只需要house 3功能,它可以为datetimpicker使用数据库日期列not list,因为我无法创建任何用户都可以编辑的列表
dateTimePicker2.Value = AddBusinessDays(30, dateTimePicker1.Value);