No, osobně jsem to už několikrát (asi 2x :-)) řešil, a místo db jsem použil 
jako zdroj svátků ResourceBundle -- a bylo to automaticky i s řešením pro jiné 
locale. Nastavení se pak dělo v textovém souboru, což zvládala i průměrná 
sekretářka, a fungovalo to.
 
Ovšem v případě, že už podobná tabulka existuje a někdo ji obhospodařuje aby 
zůstávala aktuální je řešení s přístupem do db lepší. 
 
Jiná otázka je, že podpora pro podobné kalendářové výpočty v javě je pořád 
nízká, většina z nás musí opakovaně řešit stále tytéž problémy. Divím se že do 
JDK už dávno nedali nějaké CalendarUtils ... nemáte tušení proč? Problémy s 
jiným než gregoriánským kalendářem? Nebo to už existuje a jenom o tom nevím? 
Nebo na ně nikdo neapeluje? 
 
          Mirek
 

________________________________

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ing. Jan Novotný
Sent: Wednesday, July 25, 2007 9:17 AM
To: Java
Subject: Re: Zjisteni pracovnich dnu mezi 2 dny


Je to takové nehezké řešení (kéž by Java měla pro toto nějakou podporu), ale co 
jsem se zatím setkal (celkem asi 3 případy v mé praxi) - vždycky se to řešilo 
takto. Typicky už měl náš zákazník podobnou tabulku už připravenou pro jiné 
aplikace, takže jsme se jen napojili na existující data. 
Výhodou tohoto řešení navíc je, že si zákazník obhospodařuje dny volna sám, a 
když vyhlásí celozávodku není nic jednoduššího než přidat pár záznamů do 
podobné tabulky. Má to pod kontrolou a všechny jeho interní aplikace (pokud z 
této tabulky čerpají - jako že na tom zákazník vždy trval) se novému nastavení 
jednoduše přizpůsobí. 

Honza N.


25.7.07, "Ing. Radek Žuja" <[EMAIL PROTECTED]>: 

        Asi se mnou nebude spousta lidí souhlasit ale úplně nejjednodušší je mít
        (pokud tedy jde o aplikaci s přístupem k databázi)
        mít někde tabulku datumů řekněme takovéto struktury
        datum datetime (PK)
        den     tinyint (1-31) 
        tyden  tinyint (0-53)
        mesic tinyint (1-12)
        den_v_tydnu tinyint (1-7)
        svatek tinyint (1 -Ano, 0- ne)
        
        A pokud někdo potřebuje třeba ještě dekády, kvartály apod.
        Na plnění této tabulky si napsat proceduru, která to vygeneruje třeba 
na 
        10 let dopředu, Mít třeba pomocnou tabulku svátku, kterou ta procedura
        či trigger vezme v potaz.
        A pak to můžete do aplikace zjiˇšťovat jednoduchými selecty. V palikaci
        pak nemusíte řešit jestli je den_v tydnu 1 neděle, nebo pondělí. Jediné 
        místo (a to opravdu jedinné), kde to budete řešit je ona plnicí
        procedura(trigger)
        
        
        Ta tabulka v DB moc místa nezabere, a funguuje to podle mě nejlépe.
        Radek Žuja
        
        PS: ty datové typy tinyint jsou se sybase. Je to jení nejmenší datový 
        typ. Jde v podstatě o Byte.
        >     Zdravim,
        >     kouknul jsme se do googlu a nasel jsem tam jedno reseni v .NET.
        > Myslim, ze bych sel touto cestou. Sice to nebude nic zariveho, ale asi
        > to bude jistota. Uvedu zde onen kod: 
        >
        > ***************
        > CREATE function swsAdmin.fn_WorkingDays
        > (
        >        @FromDate       datetime,
        >        @ToDate         datetime
        > )
        > RETURNS int
        > with encryption 
        > as
        > begin
        >        if(@FromDate > @ToDate)
        >         return 0
        >
        >        Declare @WorkingDays int
        >        Set @WorkingDays = 0
        >
        >        while(@FromDate <= @ToDate) 
        >        begin
        >                -- do not count SA & SU
        >                if((((@@datefirst + datepart(weekday, @FromDate) - 2) %
        > 7) + 1) < 6)
        >                begin
        >                        Set @WorkingDays = @WorkingDays + 1 
        >                end
        >
        >                -- add one day
        >                Set @FromDate = @FromDate + 1
        >        end
        >
        >        return @WorkingDays
        > end
        > ************ 
        >
        > Osobne bych jeste pridelal funkci, ktera by na argument typu Date(nebo
        > Calendar ... dle gusta) vracela, zda je pracovni ci ne. A nekde asi
        > udrzovat tabulku svatku ....
        >
        >
        > 
        > Lukas Barton napsal(a):
        >> Ladislav Starý napsal(a):
        >>> Zdravim,
        >>>
        >>> nez zacnu vymyslet nejaky algoritmus, chtel bych se zeptat, jestli
        >>> se da nejakym elegantnim zpusobem zjistit pocet pracovnich dnu mezi 
        >>> dvema kalendarnimi dny.
        >>> Pocet kalendarnich dnu jsem dokazal zjistit pomoci rozdilu
        >>> milisekund, ale jak to udelat s kalendarnimi dny, to me zatim 
nenapada.
        >>>
        >>> Zatim jsem uvazoval, ze bych postupne prochazel vsechny kalendarni
        >>> dny v tom intervalu a testoval, jestli je pracovni nebo ne.
        >>> Prijde mi ale hodne pomaly. Navic jeste budu muset resit statni 
svatky. 
        >> Zjistit pocet pondeli-patku jde jeste vzoreckem.
        >> A pak musite mit nekde databazi svatbku a odecist, to co lezi mezi.
        >> Protoze pocet svatku se meni v case (napr. velikonoce, pridavaji se 
        >> svatky nove, ....).
        >>
        >>  Lukas
        >>
        >>
        >>
        >>
        >
        
        
        




-- 
-------------------------------------------------------------- 
Ing. Jan Novotný
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
http://blog.novoj.net
Myšlenky dne otce Fura
-------------------------------------------------------------- 

Odpovedet emailem