gpt4 book ai didi

c# - 如何在给定日期前 14 天避免假期

转载 作者:太空狗 更新时间:2023-10-30 00:43:31 25 4
gpt4 key购买 nike

在我的系统中,账单的到期日必须是签发日期后的 14 天。
我有截止日期,我想知道发布日期。
我必须计算:

issued date = 14 days prior to the due date

但是14天必须是工作日,不是节假日。
假期像这样存储在表“tblHolidayMaster”中,

Date                   Description
2012/05/13         Mother's Day
2012/06/02         Saturnday
2012/12/25         Christmas

避开节假日如何计算签发日期?
感谢您的所有关注和回复。

最佳答案

我会使用下面的函数(我使用的)来计算日期

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 部分

关于c# - 如何在给定日期前 14 天避免假期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com