200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 计算有效工作日(跳过节假日)

计算有效工作日(跳过节假日)

时间:2024-04-26 12:52:52

相关推荐

计算有效工作日(跳过节假日)

在实际开发过程中,我们很多时候会遇到节假日处理的问题。由于前段时间工作需要,所以通过各种平台搜集资料,整理出下面的代码。

备注:主要是给定一个初始日期,然后给定一个时间范围,要求自动跳过节假日以及双休日,最后返回一个工作日的日期,具体代码如下:

/// <summary>

/// 根据指定日期,计算出给定时间间隔的下一个工作日的日期

/// </summary>

/// <param name="dt">给定的日期</param>

/// <param name="n">时间间隔</param>

/// <returns>下一个工作日的日期</returns>

private static DateTime ResultDateTime(DateTime dt, int n)

{

DateTime temp = dt;

int count = 0;

if (temp != null)

{

do

{

temp = temp.AddDays(1);

string strTempDate = temp.ToString().Split(' ')[0];

string[] st = strTempDate.Split('/');

string y = st[0];

string m = "";

string d = "";

if (st[1].Length == 1)

{

m = "0" + st[1];

}

else

{

m = st[1];

}

if (st[2].Length == 1)

{

d = "0" + st[2];

}

else

{

d = st[2];

}

string s = y + m + d;

// 节假日API /

string strUrl = "/api/holiday.php?d=" + s;

Uri uri = new Uri(strUrl);

WebRequest req = WebRequest.Create(uri);

WebResponse resp = req.GetResponse();

StreamReader reader = new StreamReader(resp.GetResponseStream(), Encoding.ASCII);

string strTemp = reader.ReadToEnd();

strTemp = strTemp.Split(':')[1];

// 1 为休息日,2 为节假日

if (strTemp.Contains('0'))

{

count++;

}

} while (count != n);

}

else

{

return Convert.ToDateTime("0000/1/1");

}

return temp;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。