在我的系统中,帐单的到期日必须是签发日期后的 14 天。
我有截止日期,我想知道签发日期。
我必须计算:
issued date = 14 days prior to the due date
but 14天必须是工作日,不能是节假日。
假期存储在表“tblHolidayMaster”中,如下所示,
日期 说明
2012/05/13 妈妈的
天
2012/06/02 星期六
2012/12/25 圣诞节
如何计算签发日期避开节假日?
感谢您的所有关注和回复。
我将使用如下函数(我使用的函数)来计算日期
public static DateTime AddBusinessDays(DateTime date, int days)
{
if (days == 0) return date;
if (date.DayOfWeek == DayOfWeek.Saturday)
{
date = date.AddDays(2);
days -= 1;
}
else if (date.DayOfWeek == DayOfWeek.Sunday)
{
date = date.AddDays(1);
days -= 1;
}
date = date.AddDays(days / 5 * 7);
int extraDays = days % 5;
if ((int)date.DayOfWeek + extraDays > 5)
{
extraDays += 2;
}
int extraDaysForHolidays =-1;
//Load holidays from DB into list
List<DateTime> dates = GetHolidays();
while(extraDaysForHolidays !=0)
{
var days = dates.Where(x => x >= date && x <= date.AddDays(extraDays)).Count;
extraDaysForHolidays =days;
extraDays+=days;
}
return date.AddDays(extraDays);
}
还没有测试过假期的 ast 部分
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)