Ahoj, odpovídám na zprávu ze středy, 25. července 2007, kterou Lukáš Marek napsal(a) v 13:36:27:
Navíc se chystá nová implementace do JDK: https://jsr-310.dev.java.net/ Tak se do toho může kdokoliv zapojit a říct jim co tam chce ;-) --------------------------- Původní zpráva --------------------------- Odesilatel: Lukáš Marek <[EMAIL PROTECTED]> Předmět: Zjisteni pracovnich dnu mezi 2 dny Datum: 25. července 2007, 13:36:27 (GMT +0200) Přílohy: <none> msgid:[EMAIL PROTECTED] L> http://objectlabkit.sourceforge.net/ L> -----Original Message----- L> From: [EMAIL PROTECTED] on behalf of Stöhr Miroslav RNDr. Ph.D. L> Sent: Wed 25.7.2007 11:30 L> To: Java L> Subject: RE: Zjisteni pracovnich dnu mezi 2 dny L> No, osobne jsem to uz nekolikrát (asi 2x :-)) resil, a místo db jsem pouzil jako zdroj L> svátku ResourceBundle -- a bylo to automaticky i s resením pro jiné locale. Nastavení se pak L> delo v textovém souboru, coz zvládala i prumerná sekretárka, a fungovalo to. L> Ovsem v prípade, ze uz podobná tabulka existuje a nekdo ji obhospodaruje aby zustávala L> aktuální je resení s prístupem do db lepsí. L> Jiná otázka je, ze podpora pro podobné kalendárové výpocty v jave je porád nízká, vetsina z L> nás musí opakovane resit stále tytéz problémy. Divím se ze do JDK uz dávno nedali nejaké L> CalendarUtils ... nemáte tusení proc? Problémy s jiným nez L> gregoriánským kalendárem? Nebo to L> uz existuje a jenom o tom nevím? Nebo na ne nikdo neapeluje? L> Mirek L> ________________________________ L> From: [EMAIL PROTECTED] L> [mailto:[EMAIL PROTECTED] On Behalf Of Ing. Jan L> Novotný L> Sent: Wednesday, July 25, 2007 9:17 AM L> To: Java L> Subject: Re: Zjisteni pracovnich dnu mezi 2 dny L> Je to takové nehezké resení (kéz by Java mela pro toto nejakou podporu), ale co jsem se L> zatím setkal (celkem asi 3 prípady v mé praxi) - vzdycky se to resilo takto. Typicky uz mel L> nás zákazník podobnou tabulku uz pripravenou pro jiné aplikace, takze jsme se jen napojili L> na existující data. L> Výhodou tohoto resení navíc je, ze si zákazník obhospodaruje dny volna sám, a kdyz vyhlásí L> celozávodku není nic jednodussího nez pridat pár záznamu do podobné tabulky. Má to pod L> kontrolou a vsechny jeho interní aplikace (pokud z této tabulky cerpají - jako ze na tom L> zákazník vzdy trval) se novému nastavení jednoduse prizpusobí. L> Honza N. L> 25.7.07, "Ing. Radek Zuja" <[EMAIL PROTECTED]>: L> Asi se mnou nebude spousta lidí souhlasit ale úplne nejjednodussí je mít L> (pokud tedy jde o aplikaci s prístupem k databázi) L> mít nekde tabulku datumu rekneme takovéto struktury L> datum datetime (PK) L> den tinyint (1-31) L> tyden tinyint (0-53) L> mesic tinyint (1-12) L> den_v_tydnu tinyint (1-7) L> svatek tinyint (1 -Ano, 0- ne) L> A pokud nekdo potrebuje treba jeste dekády, kvartály apod. L> Na plnení této tabulky si napsat proceduru, která to vygeneruje treba na L> 10 let dopredu, Mít treba pomocnou tabulku svátku, kterou ta procedura L> ci trigger vezme v potaz. L> A pak to muzete do aplikace zji?stovat jednoduchými selecty. V palikaci L> pak nemusíte resit jestli je den_v tydnu 1 nedele, nebo pondelí. Jediné L> místo (a to opravdu jedinné), kde to budete resit je ona plnicí L> procedura(trigger) L> Ta tabulka v DB moc místa nezabere, a funguuje to podle me nejlépe. L> Radek Zuja L> PS: ty datové typy tinyint jsou se sybase. Je to jení nejmensí datový L> typ. Jde v podstate o Byte. L> > Zdravim, L> > kouknul jsme se do googlu a nasel jsem tam jedno reseni v .NET. L> > Myslim, ze bych sel touto cestou. Sice to nebude nic zariveho, ale asi L> > to bude jistota. Uvedu zde onen kod: L> > L> > *************** L> > CREATE function swsAdmin.fn_WorkingDays L> > ( L> > @FromDate datetime, L> > @ToDate datetime L> > ) L> > RETURNS int L> > with encryption L> > as L> > begin L> > if(@FromDate > @ToDate) L> > return 0 L> > L> > Declare @WorkingDays int L> > Set @WorkingDays = 0 L> > L> > while(@FromDate <= @ToDate) L> > begin L> > -- do not count SA & SU L> > if((((@@datefirst + datepart(weekday, @FromDate) - 2) % L> > 7) + 1) < 6) L> > begin L> > Set @WorkingDays = @WorkingDays + 1 L> > end L> > L> > -- add one day L> > Set @FromDate = @FromDate + 1 L> > end L> > L> > return @WorkingDays L> > end L> > ************ L> > L> > Osobne bych jeste pridelal funkci, ktera by na argument typu Date(nebo L> > Calendar ... dle gusta) vracela, zda je pracovni ci ne. A nekde asi L> > udrzovat tabulku svatku .... L> > L> > L> > L> > Lukas Barton napsal(a): L> >> Ladislav Starý napsal(a): L> >>> Zdravim, L> >>> L> >>> nez zacnu vymyslet nejaky algoritmus, chtel bych se zeptat, jestli L> >>> se da nejakym elegantnim zpusobem zjistit pocet pracovnich dnu mezi L> >>> dvema kalendarnimi dny. L> >>> Pocet kalendarnich dnu jsem dokazal zjistit pomoci rozdilu L> >>> milisekund, ale jak to udelat s kalendarnimi dny, to me zatim nenapada. L> >>> L> >>> Zatim jsem uvazoval, ze bych postupne prochazel vsechny kalendarni L> >>> dny v tom intervalu a testoval, jestli je pracovni nebo ne. L> >>> Prijde mi ale hodne pomaly. Navic jeste budu muset resit statni svatky. L> >> Zjistit pocet pondeli-patku jde jeste vzoreckem. L> >> A pak musite mit nekde databazi svatbku a odecist, to co lezi mezi. L> >> Protoze pocet svatku se meni v case (napr. velikonoce, pridavaji se L> >> svatky nove, ....). L> >> L> >> Lukas L> >> L> >> L> >> L> >> L> > L> -- L> -------------------------------------------------------------- L> Ing. Jan Novotný L> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ L> http://blog.novoj.net L> Myslenky dne otce Fura L> -------------------------------------------------------------- ------------------------ Konec původní zprávy ------------------------ -- --------------------------------------------------------------------- Tomáš Procházka E-mail: [EMAIL PROTECTED] WWW: http://atom.sf.cz ICQ: 87147320 ---------------------------------------------------------------------
