動態計算工作日

2022-01-15 02:50:21 字數 1384 閱讀 4632

由table來設定是否為工作日,(如果為節假日則設定為非工作日,即talbe會設定每天是否為工作日)

帶入的日期必須為工作日。

alter

function

[dbo].

[fn_workdayadd](

@date

datetime

, @days

int)

returns

datetime

--nvarchar(100)

asbegin

declare

@iint

--計算工作天

set@i=1

declare

@flag

nvarchar(10

)--是否為工作天

while(@i

<=

@days

)begin

ifexists

(select

top1

flag 

from

dbo.bcc_admin_workday 

where

flag='

y'andconvert

(nvarchar(10

),date,

120)

=convert

(nvarchar(10

),@date+1

,120

))--

工作天begin

set@i=@i

+1set@date

=@date+1

set@flag='

y'end

else

begin

set@date

=@date+1

set@flag='

n'end

continue

end--最後一天是工作天,看其後是否有不為工作天的

while

exists

(select

top1

flag 

from

dbo.bcc_admin_workday 

where

convert

(nvarchar(10

),date,

120)

=convert

(nvarchar(10

),@date+1

,120

) and

flag='n')

begin

set@date

=@date+1

endreturn

convert

(nvarchar(10

),@date

,120)--

+'  '+@flag

end

計算工作日

vb vba中計算工作日 僅剔除星期 六 日 的函式。function getworkdaycount startday as date,endday as date as integer dim nums as integer,numy as integer dim weekdaynumy 7,6...

轉貼 工作日的計算

using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui usin...

sql計算工作日函式

這個演算法還不夠嚴謹,沒有考慮到周 六 日調換假期等細節的情況。1 建節假日表 create table holiday id int identity 1,1 not null name nvarchar 50 collate chinese prc ci as not null begindat...