技术开发 频道

获取有效工作日封装类


【IT168技术文档】

  在做项目的时候要求得到该月的有效工作日,于是开始写静态方法,后来由于还要获取当月开始到现在的有效工作日,于是再写方法,最后因为以后的项目还要用于是继续扩展,直接封装出一个类来。
using System; using System.Collections.Generic; using System.Text; namespace Xingmai.Support { /// <summary> /// 获取有效工作日 /// </summary> public class WorkDateProvider { #region 静态方法段 /// <summary> /// 在一段内获取有效工作日 /// </summary> /// <param name="dt1">开始日期</param> /// <param name="dt2">结束日期</param> /// <param name="intNoContain">不包含日期数</param> /// <returns>有效工作日数</returns> public static int GetWorkDateBy2Date(DateTime dt1, DateTime dt2, int intNoContain) { //判断不包含天数是否合法 if (intNoContain <= 0) throw (new Exception("不包含天数必须大于0")); return GetWorkDateBy2Date(dt1, dt2) - intNoContain; } /// <summary> /// 在一段内获取有效工作日 /// </summary> /// <param name="dt1">开始日期</param> /// <param name="dt2">结束日期</param> /// <param name="intNoContain">不包含日期数</param> /// <param name="intContain">包含日期数</param> /// <returns>有效工作日数</returns> public static int GetWorkDateBy2Date(DateTime dt1, DateTime dt2, int intNoContain, int intContain) { if (intContain <= 0) throw (new Exception("包含天数必须大于0")); return GetWorkDateBy2Date(dt1, dt2, intNoContain) + intContain; } /// <summary> /// 在一段内获取有效工作日 /// </summary> /// <param name="dt1">开始日期</param> /// <param name="dt2">结束日期</param> /// <param name="strarrNoContain">不包含日期列表</param> /// <param name="strarrContain">包含日期列表</param> /// <returns>有效工作日数</returns> public static int GetWorkDateBy2Date(DateTime dt1, DateTime dt2, string[] strarrNoContain, string[] strarrContain) { int intContain = 0; foreach (string strContain in strarrContain) { try { DateTime dtDuring = DateTime.Parse(strContain); if (dt1 <= dtDuring && dtDuring <= dt2) switch (dtDuring.DayOfWeek) //判断是否本来不是工作日的日期 { case DayOfWeek.Saturday: case DayOfWeek.Sunday: intContain++; break; default: break; } } catch (Exception ex) { throw (ex); } } return GetWorkDateBy2Date(dt1, dt2, strarrNoContain) + intContain; }
0
相关文章