zoukankan      html  css  js  c++  java
  • 排除节假日的日期加法

    • 功能运行环境:节假日数据存放在数据库表中,格式如下

       

      //判断日期是否是节假日
            private bool IsHoliday(DateTime dt)
            {
                Database db = DatabaseFactory.CreateDatabase("SQLDBConnection");
                string sql = @"SELECT count(*)
                                 FROM [OA_Sys_Holiday]
                                WHERE [Date] = @startTime";
                bool result = false;
                using (DbCommand comm = db.GetSqlStringCommand(sql))
                {
                    db.AddInParameter(comm, "@startTime", DbType.String, dt.ToShortDateString());
                    if ((int)db.ExecuteScalar(comm) > 0)
                    {
                        result = true;
                    }
                }

                return result;
            }

            //日期加法(排除节假日)
            private DateTime AddDayWithoutHoliday(DateTime startDate,int days)
            {
                while (IsHoliday(startDate))//跳过节假日(保证开始时间不是节假日):如果开始时间是节假日,找到节假日的结束时间作为起始时间
                {
                    startDate=startDate.AddDays(1);
                    DateTime dt = startDate.Date;
                    startDate = dt;
                }
                for (int i = 0; i < days; i++)
                {
                    startDate = startDate.AddDays(1);
                    if (IsHoliday(startDate))
                    {
                        do
                        {
                            startDate = startDate.AddDays(1);
                        } while (IsHoliday(startDate));
                    }
                }
                return startDate;
            }

  • 相关阅读:
    scrollTop
    ……
    放下
    值得纪念的一天
    php新手上路(六)
    image map
    文字多出用点代替
    js formatter
    感谢,今天刚申请了博客园,
    接口的作用
  • 原文地址:https://www.cnblogs.com/andy65007/p/1261252.html
Copyright © 2011-2022 走看看