<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        工作日計算問題思路和實現

        來源:懂視網 責編:小采 時間:2020-11-09 14:39:12
        文檔

        工作日計算問題思路和實現

        工作日計算問題思路和實現:項目中目前已有一周表存儲了一年中所有的假日,給定查詢起始日期和結束日期,推導出查詢時間段內工作日是多少。為了簡化這個問題,需要下面幾個假設。 1. 不考慮周六周日,將其視作普通工作日 2. 假日沒有交疊情況,不會出現10月1日到7日是國慶節,其中又有
        推薦度:
        導讀工作日計算問題思路和實現:項目中目前已有一周表存儲了一年中所有的假日,給定查詢起始日期和結束日期,推導出查詢時間段內工作日是多少。為了簡化這個問題,需要下面幾個假設。 1. 不考慮周六周日,將其視作普通工作日 2. 假日沒有交疊情況,不會出現10月1日到7日是國慶節,其中又有

        項目中目前已有一周表存儲了一年中所有的假日,給定查詢起始日期和結束日期,推導出查詢時間段內工作日是多少。為了簡化這個問題,需要下面幾個假設。 1. 不考慮周六周日,將其視作普通工作日 2. 假日沒有交疊情況,不會出現10月1日到7日是國慶節,其中又有

        項目中目前已有一周表存儲了一年中所有的假日,給定查詢起始日期和結束日期,推導出查詢時間段內工作日是多少。為了簡化這個問題,需要下面幾個假設。

        1. 不考慮周六周日,將其視作普通工作日

        2. 假日沒有交疊情況,不會出現10月1日到7日是國慶節,其中又有一個其它的節日

        給出假日表的設計,某個假日都有起始時間和結束時間,這里只取月日,這樣就能表示每一年的假日。

        CREATE TABLE [dbo].[holiday](
        	[begin_time] [varchar](50) NULL,
        	[end_time] [varchar](50) NULL
        ) ON [PRIMARY]
        
        GO
        插入測試數據,例如插入國慶節的假日

        \

        給定查詢時間段為從2014-09-30至2014-10-08,這期間的工作日

        declare @query_begin datetime --查詢起始時間
        declare @query_end datetime --查詢結束時間
        declare @year1 int 
        declare @year2 int
        declare @yeartemp int
        declare @total_holidays int
        set @query_begin = '2014-09-01'
        set @query_end = '2015-01-31'
        set @year1 = YEAR(@query_begin)
        set @year2 = YEAR(@query_end)
        
        --存儲所有的含有年月日的假期
        IF object_id('tempdb..#temp') is not null
         BEGIN
         drop table #temp
         END
         CREATE table #temp
         (
         begin_time date, 
         end_time date, 
         )
        
        insert into #temp
        select convert(varchar(4),@year1)+'-'+begin_time, convert(varchar(4),@year1)+'-'+end_time 
        from holiday
        
        --這里主要考慮查詢時間段跨年的情況
        set @yeartemp=@year1+1
        while @yeartemp<=@year2
        begin
         insert into #temp
         select convert(varchar(4),@yeartemp)+'-'+begin_time, convert(varchar(4),@yeartemp)+'-'+end_time 
         from holiday
         set @yeartemp=@yeartemp+1
        end
        
        --去掉和查詢時間段沒有一點交集的假日段
        delete from #temp
        where end_time<@query_begin or begin_time>@query_end
        
        select @total_holidays= SUM(DATEDIFF(dd,begin_time,end_time)+1)
        from
        (
         select case when begin_time<@query_begin then @query_begin else begin_time end as begin_time,
         case when end_time>@query_end then @query_end else end_time end as end_time from #temp
        ) t 
        
        select DATEDIFF(DD,@query_begin,@query_end)+1-@total_holidays
        
        drop table #temp
        執行該腳本就可以得到結果是2,符合預期。下面給出一些特殊測試用例,驗證腳本是否能正確計算工作日。

        1. 查詢時間為2014-10-05至2014-10-08

        結果:1

        2. 查詢時間為2014-09-30至2014-10-07

        結果:1

        3. 增加一條假日,例如是教師節,查詢時間段為2014-09-01至2014-10-08

        結果:30

        4. 在增加一條假日記錄,元旦,查詢時間段為2014-09-01至2015-01-31

        現在holiday表的記錄為:

        \

        如果手動去算就是:30+31+30+31+31-7-1-1=144

        實際結果:144

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        工作日計算問題思路和實現

        工作日計算問題思路和實現:項目中目前已有一周表存儲了一年中所有的假日,給定查詢起始日期和結束日期,推導出查詢時間段內工作日是多少。為了簡化這個問題,需要下面幾個假設。 1. 不考慮周六周日,將其視作普通工作日 2. 假日沒有交疊情況,不會出現10月1日到7日是國慶節,其中又有
        推薦度:
        標簽: 實現 計算 目前
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品国产亚洲AV麻豆| 2020国产精品亚洲综合网| 精品剧情v国产在免费线观看| 久久久久久精品成人免费图片| 91精品国产免费| 国产成人免费高清激情明星| 国产亚洲AV手机在线观看| 伊人久久亚洲综合| 国产精品亚洲а∨天堂2021| 一个人免费观看日本www视频| 国产日韩AV免费无码一区二区三区| 中文字幕视频免费在线观看| 99视频精品全部免费观看| 成人午夜大片免费7777| 啊v在线免费观看| 亚洲成av人在线视| 精品亚洲国产成人| 精品久久久久亚洲| 国产一级一片免费播放i| 亚洲精品乱码久久久久久按摩| 亚洲一卡2卡4卡5卡6卡在线99 | 亚洲成电影在线观看青青| 日韩亚洲产在线观看| 窝窝影视午夜看片免费| 精品一区二区三区免费毛片爱 | 人人公开免费超级碰碰碰视频 | 国产成人免费手机在线观看视频| 狠狠综合久久综合88亚洲| 国产视频精品免费视频| 久久精品国产亚洲麻豆| 国产电影午夜成年免费视频| 亚洲AV无码一区二区三区在线观看| 久久精品国产精品亚洲蜜月| 亚洲码和欧洲码一码二码三码| h视频在线免费观看| 最近中文字幕mv免费高清视频7 | 亚洲偷自精品三十六区| 免费网站看v片在线香蕉| 午夜免费国产体验区免费的| 亚洲人成网亚洲欧洲无码久久| 久久水蜜桃亚洲AV无码精品|