http://objectlabkit.sourceforge.net/


-----Original Message-----
From: [EMAIL PROTECTED] on behalf of Stöhr Miroslav RNDr. Ph.D.
Sent: Wed 25.7.2007 11:30
To: Java
Subject: RE: Zjisteni pracovnich dnu mezi 2 dny

No, osobne jsem to uz nekolikrát (asi 2x :-)) resil, a místo db jsem pouzil 
jako zdroj svátku ResourceBundle -- a bylo to automaticky i s resením pro jiné 
locale. Nastavení se pak delo v textovém souboru, coz zvládala i prumerná 
sekretárka, a fungovalo to.

Ovsem v prípade, ze uz podobná tabulka existuje a nekdo ji obhospodaruje aby 
zustávala aktuální je resení s prístupem do db lepsí.

Jiná otázka je, ze podpora pro podobné kalendárové výpocty v jave je porád 
nízká, vetsina z nás musí opakovane resit stále tytéz problémy. Divím se ze do 
JDK uz dávno nedali nejaké CalendarUtils ... nemáte tusení proc? Problémy s 
jiným nez gregoriánským kalendárem? Nebo to uz existuje a jenom o tom nevím? 
Nebo na ne 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é resení (kéz by Java mela pro toto nejakou podporu), ale co 
jsem se zatím setkal (celkem asi 3 prípady v mé praxi) - vzdycky se to resilo 
takto. Typicky uz mel nás zákazník podobnou tabulku uz pripravenou pro jiné 
aplikace, takze jsme se jen napojili na existující data.
Výhodou tohoto resení navíc je, ze si zákazník obhospodaruje dny volna sám, a 
kdyz vyhlásí celozávodku není nic jednodussího nez pridat pár záznamu do 
podobné tabulky. Má to pod kontrolou a vsechny jeho interní aplikace (pokud z 
této tabulky cerpají - jako ze na tom zákazník vzdy trval) se novému nastavení 
jednoduse prizpusobí.

Honza N.


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

        Asi se mnou nebude spousta lidí souhlasit ale úplne nejjednodussí je mít
        (pokud tedy jde o aplikaci s prístupem k databázi)
        mít nekde tabulku datumu rekneme 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 nekdo potrebuje treba jeste dekády, kvartály apod.
        Na plnení této tabulky si napsat proceduru, která to vygeneruje treba na
        10 let dopredu, Mít treba pomocnou tabulku svátku, kterou ta procedura
        ci trigger vezme v potaz.
        A pak to muzete do aplikace zji?stovat jednoduchými selecty. V palikaci
        pak nemusíte resit jestli je den_v tydnu 1 nedele, nebo pondelí. Jediné
        místo (a to opravdu jedinné), kde to budete resit je ona plnicí
        procedura(trigger)


        Ta tabulka v DB moc místa nezabere, a funguuje to podle me nejlépe.
        Radek Zuja

        PS: ty datové typy tinyint jsou se sybase. Je to jení nejmensí datový
        typ. Jde v podstate 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
Myslenky dne otce Fura
--------------------------------------------------------------

Odpovedet emailem