<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
        主站蜘蛛池模板: 59pao成国产成视频永久免费| 污视频网站在线观看免费| 免费国产污网站在线观看| 亚洲人成电影网站国产精品| 美女被羞羞网站免费下载| 亚洲AV成人噜噜无码网站| 国产精彩免费视频| 亚洲精品国产免费| 中文字幕无码免费久久99 | 亚洲无砖砖区免费| 久久亚洲精品无码av| 波多野结衣久久高清免费 | 99久久精品免费视频| 久久亚洲精品成人综合| 久久久久高潮毛片免费全部播放| 亚洲精品国产成人专区| 色屁屁在线观看视频免费| 四虎影视精品永久免费| 日本高清不卡中文字幕免费| 国产午夜亚洲不卡| 高清一区二区三区免费视频| 亚洲天堂中文字幕在线观看| 女人张开腿给人桶免费视频| 国产亚洲视频在线| 亚洲精品国产精品乱码在线观看| 久久永久免费人妻精品| 在线综合亚洲欧洲综合网站| 四虎免费永久在线播放| 在线涩涩免费观看国产精品| 亚洲综合久久1区2区3区| 成人免费网站在线观看| 亚洲制服丝袜在线播放| 亚洲成人免费在线| 中国china体内裑精亚洲日本| 四虎亚洲国产成人久久精品| 青柠影视在线观看免费高清| 亚洲图片校园春色| 亚洲精品国产V片在线观看| 777成影片免费观看| 羞羞漫画在线成人漫画阅读免费| 久久91亚洲人成电影网站|