我正在开发c#.net解决方案,我必须根据提供的持续时间日期从日期时间选择器的开始日期计算结束日期。(不包括周末)
即。
开课日期:02/09/2015天:5
开始日期= 02/09/2015 + 5天(不包括周末)
结束日期= 2015年9月8日
谢谢你,
答案 0 :(得分:1)
试试这个,
var startDate = DateTime.Now; // Put your actual start date here
for (int i = 0; i < 5;) // Put number of days to add instead of 5
{
startDate = startDate.AddDays(1);
if (startDate.DayOfWeek == DayOfWeek.Saturday || startDate.DayOfWeek == DayOfWeek.Sunday)
{
continue;
}
i++;
}
var finalDate = startDate;
答案 1 :(得分:1)
假设您的开始日期是工作日,只需添加7天即可。任意天数的计算如下:
DateTime StartDate = new DateTime(2015, 9, 2);
DateTime EndDate = StartDate.AddDays(duration/5*7+duration%5);
假设我们有一个businessHolidays
数组,我们也可以考虑这些:
for( var index = 0; index < businessHolidays.length; index++) {
var holiday = businessHolidays[index];
if (holiday.Date >= StartDate.Date && holiday.Date <= EndDate.Date) {
EndDate.AddDays(1);
}
}
最后,我们检查结果日期,看它是否属于周末。如果开始日期是周末或我们因假期推迟了日期,则必须这样做。
if ( EndDate.DayOfWeek == DayOfWeek.Saturday ) {
EndDate.AddDays(2);
} else if ( EndDate.DayOfWeek == DayOfWeek.Sunday ) {
EndDate.AddDays(1);
}