Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: visual studio - ilosc dni roboczych

niby nie ta grupa, ale ta z visual stuidio dogorywa a poniekad temt pochodny.. na potrzeby kostek olap potrzebuje zrobic kalkulacje uwzgledniajaca ilosc dni roboczych w miesiacu, a na pierwszy rzut oka wyglada ze czegos takiego nie ma; ktos moze podpowie jak (istnieje jakis parametr? funkcja?) uzyskac (w visual studio, projekt kostki olap) ilosc dni roboczych w danym miesiacu?

konto usunięte

Temat: visual studio - ilosc dni roboczych

ze świętami czy bez?
Tomasz Serwański

Tomasz Serwański Microsoft Dynamics
CRM - konsultant
biznesowy

Temat: visual studio - ilosc dni roboczych

Przemysław R.:
ze świętami czy bez?
im wiecej przypadkow tym lepiej..

konto usunięte

Temat: visual studio - ilosc dni roboczych

ja się nie bawiłem, zrobiłem sobie tabele z datami na kilka lat w przód i odznaczyłem wszystkie święta i weekendy
Marcin Miga

Marcin Miga Programista. Po
prostu programista.

Temat: visual studio - ilosc dni roboczych

Zrobiłem tak samo jak Przemek. Ma to jeszcze tę zaletę, że możesz robić kalendarze innych nacji...

pozdrawiaMM
Tomasz Anciński

Tomasz Anciński Programista Systemów
Sterowania,
Blumenbecker
Engineering...

Temat: visual studio - ilosc dni roboczych

nie wiem czy to o to ci chodzi, ale robiłem kiedyś taki kalendarz dla brygad...
na poziomie samego zapytania filtrowałem na podstawie zakresów dat otrzymane wyniki...

z tego co pamiętam to dosyć przydatną funkcją DATEFIRST ustawiony na 1 określał poniedziałek
DATEADD, DATEDIFF itd

np. pierwszy poniedziałek miesiąca

SELECT DATEADD(day, DATEDIFF(day, '19000101', DATEADD( month, DATEDIFF(month, '19000101', SYSDATETIME()), '19000101') -1) /7*7+7, '19000101') as poniedziałek;

czyli pierwszy poniedziałek w tym miesiącu był czwartego...

SELECT DATEADD(day, DATEDIFF(day, '19000101',
DATEADD( month, DATEDIFF(month, '19000101', '20130501'), '19000101')
-1) /7*7+21, '19000101') as poniedziałek;
lub 3 poniedziałek w maju...

to też ci się może przydać... generowanie serii dat pomiędzy dwoma datami. potrzebna będzie tabela liczb całkowitych bądź funkcja generująca takowe...

DECLARE
@start as date = '20130101',
@end as date = '20130430';

SELECT DATEADD(day, n-1, @start) as dt
from dbo.nums
where n <= datediff(day, @start, @end) +1;

pierwszy kwartał...

pokombinuj z poniedziałkami no i tyle...

ale najprościej...

declare @s as date = '20130101'
declare @e as date = '20130228'

select days/7*5+ days%7
- case when 6 between wd and wd + days%7-1 then 1 else 0 end
- case when 7 between wd and wd + days%7-1 then 1 else 0 end as Dni_galery
From (Select
datediff (day, @s, @e)+1 as days,
datepart(WEEKDAY, @s) as wd ) as D;

no i masz wynik ile dni wiosłujesz na galerze w tym roku...

co do dodatkowych świąt to lista listą ale są tzw święta ruchome i o tyle że 25 i 26 grudzień jest wolny to pewne, to już wielkanoc nie bardzo... ale trzeba popytać starszyzny i powiedzą że to święto przypada w 40 dni po czymś tam co jest 7 tygodniem od czegoś tam (oczywiście trzeba zapytać bo teraz nie pamiętam) ... posiadając taką wiedzę to już chyba nie będzie trudne :)

ps

Visual nie umarł tylko wszyscy już wszystko wiedzą i nie ma nawet o co zapytać...Tomasz Anciński edytował(a) ten post dnia 07.02.13 o godzinie 11:49
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: visual studio - ilosc dni roboczych

Stworzyłem funkcję do wyznaczania polskich świąt w C#. Podajesz rok, a on zwraca słownik świąt.


public static Dictionary<DateTime, string> GenerateHolidaysForYear(int year)

Jeśli jesteś jeszcze zainteresowany to daj znać.

Temat: visual studio - ilosc dni roboczych

Ja bym zrobił tabelkę mapującą ze świętami (nie potrzeba wstawiać wszystkich dni tylko oznaczyć święta - im mniej zbędnych danych tym lepiej?),
weekendy można jakoś SQL'owo wyliczyć tutaj masz to opisane:

http://stackoverflow.com/questions/1803987/how-do-i-ex...

Następna dyskusja:

Zaproszenie do grupy MS VIS...




Wyślij zaproszenie do