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

  • 相关阅读:
    揭示短线操作宝贵心得
    MFC常用类、成员函数、数组类、Cstring类、CTime类、CPoint类
    A股和B股的区别
    大盘指数的定义及其计算方法
    追涨杀跌法
    成交量变化八规律(旧文有韵)
    蓝筹股、红筹股的含义
    对上市公司进行综合分析
    socket异步笔记
    从WEB SERVICE 上返回大数据量的DATASET
  • 原文地址:https://www.cnblogs.com/andy65007/p/1261252.html
Copyright © 2011-2022 走看看