2011-01-31 9 views
0

У меня есть выбор даты, который выберет текущую системную дату. onclick кнопки. Мне нужно добавить девять дней бизнеса в текущий день и отобразить их на входное значение, , так что только дни недели исключаются, когда мы добавляем дни.
Например, , если у вас есть сегодняшний день (01/31/2011), и я хочу добавить 9 дней, ответ должен быть 10/3/06, так как выходные (02/03/2011) не должны учитываться ,
Кто-нибудь знает, как это можно сделать?для отображения только будни будние дни

+0

Будет праздник с. Рождество или Пасху) также исключаются? Если да, вам нужно будет получить эти данные из какого-либо онлайн-источника или предоставить его самостоятельно ... –

ответ

0

для этого вам нужно обрешетке одна функция SQL, как:

создать функцию fn_IsWeekDay ( @date DATETIME ) возвращает укусил , как начинают

declare @dtfirst int 
declare @dtweek int 
declare @iswkday bit 

set @dtfirst = @@datefirst - 1 
set @dtweek = datepart(weekday, @date) - 1 

if (@dtfirst + @dtweek) % 7 not in (5, 6) 
    set @iswkday = 1 --business day 
else 
    set @iswkday = 0 --weekend 

return @iswkday 

конец

Short и сладкий. Теперь вы можете просто сделать это:

если dbo.fn_IsWeekDay (@date) = 1 начало - здесь какая-то магия; конец

-OR,

реализована функциональность

0

Вы, вероятно, нужно что-то более продвинутое, но при условии, что вы просто хотите, чтобы отменить субботу и воскресенье вы можете сделать что-то вроде этого (только основной расчет, надежда Я не считал неправильным):

<script> 
today = new Date(); 
endDate=today; //Init. 

alert(today); 

dayOfWeek=today.getDay(); 

//0: Sunday 
if(dayOfWeek==0 || dayOfWeek==1)endDate.setDate(today.getDate() + 11); 
else if(dayOfWeek==6)endDate.setDate(today.getDate() + 12); 
else endDate.setDate(today.getDate() + 13); 

alert(endDate); 
</script> 

EDIT: это предполагает "WOKING дней" Пн, вт, ср, чт, Пт

+0

его работа может у вас, пожалуйста, объясните мне, как он работает – vijay

+0

Принцип работы довольно прост. dayOfWeek - целое число в диапазоне 0-6, сообщающее вам, в какой день он сегодня (0 = воскресенье). Если это воскресенье или понедельник, вы должны добавить 11 полных дней, чтобы иметь 9 рабочих дней, если в субботу вам нужно добавить 12 дней, иначе вам нужно добавить 13 дней. Если вы возьмете бумагу и попытаетесь выяснить, почему, вы сразу поймете ее. – Danilo

+0

да, я получил ее благодаря большому количеству – vijay

Смежные вопросы