Autor | Zpráva | ||
---|---|---|---|
Prochy Profil |
#1 · Zasláno: 1. 7. 2013, 10:17:00
Dobré ráno,
potřeboval bych poradit s jedním problémem. Mám aplikaci na zpracovávání úkolů, a potřeboval bych měřit čas jejich zpracování. To počítání je vyhraněno časy, takže např. se to počítá jen v pondělí-pátek od 8-16 hodin, sobota 8-12h. Napadlo mě jednoduché řešení pomocí Cronu, kde bych kontroloval, jestli je úkol v řešení a je v rozmezí toho počítacího období a přičetl např. každých pět minut 5 minut. Ale bojim se, že by to bylo nespolehlivé. Další co mě napadlo je ukládat si čas do db, kdy se řešil. Takže bych do db uložil datum např. 2013-07-01 10:05 a 2013-07-04 18:00. Ale nějak mě v tomto případě, jak to vyřešit. Potřeboval bych nějak to rozdělit na pole jednotlivých dnů a pak bych to zvládnul nějak vypočítat. Říkal sem si, že bych odečetl vždy následujicí den to znamená 2013-07-01 10:05 mínus 2013-07-02 0:00 vyšel by mi rozdíl 13 hodin a 55 minut. Poté bych odečetl čas 24-16=8 h a poté by čas od 0 do 16-8=8h byl pracovní čas. Napadá někoho lepší řešení? Přijde mi tohle poměrně složité, a čekal bych, že by to šlo řešit elegantněji, jen mě nic lepšího zatím nenapadlo a už sem nad tím poměrně dlouho bádal, tak žádám o pomoc. :-) Děkuji za případné náměty na lepší řešení. |
||
ts_istudio Profil |
#2 · Zasláno: 3. 7. 2013, 10:11:47
Prochy:
Řešíš přesně co? Sběr těch časů nebo ten výpočet? Když si to ošetříš a budeš s jistotou vědět, že každý lichý čas je příchod a každý sudý odchod, dávej to prostě do tabulky a použij DATEDIFF. „Napadlo mě jednoduché řešení pomocí Cronu, kde bych kontroloval, jestli je úkol v řešení a je v rozmezí toho počítacího období a přičetl např. každých pět minut 5 minut.“ Tohle vůbec nechápu. |
||
Časová prodleva: 6 dní
|
|||
Prochy Profil |
Omlouvám, se za opožděnou reakci, byl sem pracovně mimo.
Myslel jsem, že sem se vyjádřil jasně. Budu mít úkol, který má určitý stav: řeší se, neřeší, čeká se atd.... Počítat se musí pouze, když se řeší. Takže mám tabulku, kde ukládám časy stavu řeší se např.: datum od: 2013-07-04 15:00, datum do: 2013-07-06 9:35 datum od: 2013-07-08 12:00, datum do: 2013-07-09 11:11 Poté mám tabulku, kde pro každý den je nastaveno, v jakém čase se má počítat řešení např. Pondělí 8-16h, Úterý 8-16h atd.. A já potřeboval součet těch časů, kdy se to řešilo, ale započítat pouze ty hodnoty v rozmezí 8-16h, takže např. pro datum od: 2013-07-04 15:00, datum do: 2013-07-04 9:35 to máme první den 1hodinu, 2 den 8 hodin atd.., poslední 1h 35m + další rozmezí času Nakonec sem si vymyslel funkci, která mi pro zadané hodnoty vypočítá dané časy, ale dalo mi to poměrně hodně zabrat. |
||
Tori Profil |
Prochy:
A co kdybyste si do té tabulky přidal sloupec uctovany_cas (typu TIME), tj. čas strávený nad úkolem v pracovní době, a ten byste dopočítal mimo DB před uložením "datum_do"? |
||
Prochy Profil |
#5 · Zasláno: 9. 7. 2013, 23:26:51
Tori:
To je dobrý nápad, nějak mě to nenapadlo, děkuji za pomoc. :-) |
||
Časová prodleva: 11 let
|
0