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;
            }

  • 相关阅读:
    iOS开发UI篇—核心动画(转场动画和组动画)
    iOS开发UI篇—核心动画(关键帧动画)
    iOS开发UI篇—核心动画(基础动画)
    iOS开发UI篇—核心动画简介
    iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
    iOS开发UI篇—控制器的View的创建
    iOS开发UI篇—控制器的创建
    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
    java微信小程序参数二维码生成带背景图加字体(无限生成)
    EXCEL数据读取解析多个sheet
  • 原文地址:https://www.cnblogs.com/andy65007/p/1261252.html
Copyright © 2011-2022 走看看