[ XGhost @ 30.01.2018. 18:06 ] @
Pravim nekakav softver za evidenciju radnog vremena pa sam naisao
na problem koji ne znam kako da rjesim.
Dakle imam razlicito placeno radno vrijeme 06-20, 20-00,00-04,04-06.
U programu imam samo mogucnost da radnik se prijavi i odjavi odnosno
da program unese vrijeme u bazu podataka prilikom prijave i odjave.

Jeli neko imao slican problem ili pak zna rjesenje za isti.
[ savkic @ 30.01.2018. 21:10 ] @
Sto se tice racuna to i nije neki veliki problem, cuvas prijavu/odjavu kao timestamp (datumvreme) i ides redom po slogovima i oduzimas prijavu od odjave sto ce ti dati vreme u satima/minutima, to dalje sabiras u nedeljni/mesecni total za smenu. Ako je potrebno da strogo odvajas smene po datim vremenima i ako je prijava u jednoj smeni a odjava u drugoj, racunao bi odvojeno vreme u jednoj i drugoj.
Npr, prijava je u 20:05, odjava u 01:30, imao bi od 20:05 do 00:00 i od 00:00 do 1:30.

[ XGhost @ 30.01.2018. 22:50 ] @
Savkicu jel ima negdje kakav primjer da pokusam to skontati.
Ovo sto pravim razlikuju se cijene sati ovisno u koje je doba dana
[ dusans @ 30.01.2018. 23:08 ] @
Algoritam nije toliko težak...

1. Treba ti funkcija koja računa intersekciju dva intervala (perioda), pseudo kod:
Code:

p1, k1 - početak i kraj prvog intervala
p2, k2 - početak i kraj drugog intervala

p = max(p1, p2) - početak intersekcije
k = min(k1, k2) - kraj intersekcije

Ako je p < k onda postoji intersekcija
Ako je p >= k onda ne postoji intersekcija

2. Za svaki period dana pojedinačno uradiš intersekciju sa periodom kada je zaposleni radio.
Ako postoji intersekcija, uzimaš njenu dužinu i množiš sa cenom, i to sve akumuliraš u total.