Быстрый способ найти дату, которая составляет n рабочих дней в будущем или прошлом - PullRequest
0 голосов
/ 27 августа 2018

Есть ли способ вычислить дату, которая составляет n рабочих дней в будущем или прошлом без итерации?

Например: если дано 1.1.1985, какая дата является 1000 рабочих дней спустя?


Редактировать: в моем случае рабочие дни с понедельника по пятницу, не считая праздничных дней.

Это работает, но слишком медленно:

create function slow(@i int, @date date)
returns date
as
begin
    while (@i != 0)
    begin
        select @date = dateadd(dd, sign( @i), @date)
        if (datepart(dw, @date) = 1 or datepart(dw, @date) = 7)
            continue

        select @i = @i - sign(@i)
    end
    return @date
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...