• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    工作日計算問題思路和實(shí)現(xiàn)

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 14:39:12
    文檔

    工作日計算問題思路和實(shí)現(xiàn)

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

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

    項(xiàng)目中目前已有一周表存儲了一年中所有的假日,給定查詢起始日期和結(jié)束日期,推導(dǎo)出查詢時間段內(nèi)工作日是多少。為了簡化這個問題,需要下面幾個假設(shè)。

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

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

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

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

    \

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

    declare @query_begin datetime --查詢起始時間
    declare @query_end datetime --查詢結(jié)束時間
    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
    
    --去掉和查詢時間段沒有一點(diǎn)交集的假日段
    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
    執(zhí)行該腳本就可以得到結(jié)果是2,符合預(yù)期。下面給出一些特殊測試用例,驗(yàn)證腳本是否能正確計算工作日。

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

    結(jié)果:1

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

    結(jié)果:1

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

    結(jié)果:30

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

    現(xiàn)在holiday表的記錄為:

    \

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

    實(shí)際結(jié)果:144

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

    文檔

    工作日計算問題思路和實(shí)現(xiàn)

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

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 青娱乐国产精品视频| 久久国产免费观看精品3| 无码精品久久久久久人妻中字| 尤物国产在线精品福利一区| 影院无码人妻精品一区二区| 国产成人精品一区在线| 国产产无码乱码精品久久鸭| 亚洲精品无码久久一线| 精品成人av一区二区三区| 精品久久久久久国产91| 人妻少妇精品中文字幕AV| 无码AⅤ精品一区二区三区| 久久精品99久久香蕉国产色戒| 国产精品亚洲专区无码WEB | 久久国产精品-国产精品| 精品亚洲成AV人在线观看| 最新国产在线精品观看| 日韩精品免费一线在线观看| 国产精品热久久无码av| 欧美成人精品一区二区综合| 国产福利精品视频自拍| 亚洲精品私拍国产福利在线| 国产成人精品日本亚洲专一区| 国产亚洲精品资源在线26u| 欧洲精品久久久av无码电影| 亚洲精品制服丝袜四区| 亚洲精品视频免费| 亚洲欧美精品综合中文字幕| 亚洲国产精品一区二区九九| 日本精品久久久久影院日本| 久久久久亚洲精品中文字幕| 久久91精品综合国产首页| 国产精品永久久久久久久久久| 国产精品H片在线播放| 国产精品无码v在线观看| 国产精品亚洲高清一区二区| 国产精品免费观看视频| 国产精品毛片一区二区| 国产亚洲美女精品久久久| 精品人妻少妇一区二区三区在线| 久久精品无码一区二区三区免费|