Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 13 odgovora
  • 4.110 pregleda

Najnovija ↓

Problem sa izracunavanjem vremena 02.08.2010. u 00:15 · pre 197 meseci #1
Pozdrav svima, radim neku aplikaciju u kojoj trebam oduzeti vrijeme od kada je radnik dosao na posao te ono vrijeme kada odlazi s posla.
Jedan problem mi se javlja a to je ukoliko radnik npr. dodje 02.08.2010 20:00:00 a ode 03.08.2010 00:00:00, Access vrijeme odlaska ne smatra kao 24h vec prepoznaje ga kao nulu (0). Ja sam probao s onim rjesenjem koji se nalazi na linku: http://www.elitesecurity.org/t360328, ali to mi ne pomaze mnogo jer npr. ako radnik dodje 02.08.2010 23:56:25 a ode 03.08.2010 0:27:48, ono ponudjeno rjesenje javlja da je radio UkupanBrojSati=1 (sto nije tacno jer radnik je radio otprilike pola sata) i OstatakMinuta=-29.

Takodjer zamolio bih vas za ponoc jer svaki radnik u toku mjeseca radi preko 100 sati pa kako to da saberem???

Unaprijed hvala svima.
Re: Problem sa izracunavanjem vremena 02.08.2010. u 00:41 · pre 197 meseci #2
Vidi da li ovo možeš da prilagodiš:


Public Function GetElapsedInterval(dtStartDate As Date, dtEndDate As Date) _
As String
'Returns a formatted string yielding elapsed time.
'Doesn't handle negative date ranges i.e. dtEndDate > dtStartDate
'Input date/times between two ##, i.e. #9/10/1963 8:30AM#.
' Function works for all date/times between January 1, 100 12:00:00AM
' to December 31, 9999 11:59:59PM
' Use existing Microsoft elapsed time functions
' GetElapsedTime and Age to extend elapsed time to
' include elapsed years and months
'Author: K. Fisher 5/20/1998 [email protected]
'Sample usage:
'?basDate.GetElapsedInterval(#1/1/100 10:22PM#,Now())
'1898 Years 4 Months 18 Days 3 Hours 15 Minutes 53 Seconds
'?basDate.GetElapsedInterval(#5/19/1998 11:22:37PM#, #5/20/1998 12:39:54PM#)
'0 Years 0 Months 0 Days 13 Hours 17 Minutes 17 Seconds

Dim dtWorkingDate As Date 'working date/time

'Determine the elapsed years portion
Dim intYears As Integer
intYears = Age(dtStartDate, dtEndDate)
'34 = 9/18/1998 9/10/1963

'Determine the elapsed month portion
dtWorkingDate = DateAdd("yyyy", intYears, dtStartDate)
'9/10/97 8:30:00 PM = 34 years plus 9/10/1963 8:30PM
Dim intMonths As Integer
intMonths = DateDiff("m", dtWorkingDate, dtEndDate)
dtWorkingDate = DateAdd("m", intMonths, dtWorkingDate)
'5/10/98 8:30:00 PM = 8 months plus 9/10/97 8:30:00 PM

'Determine the elapsed days, hours, minutes, seconds portion
Dim dblInterval As Double
dblInterval = dtEndDate - dtWorkingDate
'9.0766087962984 = 5/19/98 8:00:00 AM - 5/10/98 8:30:00 PM

'Assemble the formatted string
GetElapsedInterval = intYears & " Years " & intMonths & _
" Months " & GetElapsedTime(dblInterval)

End Function

Public Function Age(dtBirthday, dtAgeOnDate) As Integer
' Returns the Age in years between 2 dates
' Doesn't handle negative date ranges i.e. dtBirthday > dtAgeOnDate
' Input dates between two ##, i.e. #9/10/1963#.
' Source: Microsoft 1997 Neatcode.mdb
' Example: Debug.Print basDate.Age(#9/10/1963#,Now())
If Month(dtAgeOnDate) < Month(dtBirthday) Or _
(Month(dtAgeOnDate) = Month(dtBirthday) And _
Day(dtAgeOnDate) < Day(dtBirthday)) Then
Age = Year(dtAgeOnDate) - Year(dtBirthday) - 1
Else
Age = Year(dtAgeOnDate) - Year(dtBirthday)
End If
End Function


U Immediate Window upit na:

? GetElapsedInterval("02.08.2010 23:56:25", "03.08.2010 0:27:48")

Vraća:

0 Years 0 Months 0 Days 0 Hours 31 Minutes 23 Seconds
Potpis
Pozdrav,
Branislav
Re: Problem sa izracunavanjem vremena 02.08.2010. u 06:40 · pre 197 meseci #3
Nisam isprobao rešenje koje je banem dao, ali ako ne pomogne, vredi pogledati u Top temu Baza Znanja http://www.elitesecurity.org/t52046-2#2633068 ili na drugim temama sa rezultatom pretrage za DateDiff funkciju.

Sabiranje sati pogledaj ovde:
http://www.elitesecurity.org/t338335-0#2066488.
http://www.elitesecurity.org/t388024-0#2493451
http://www.elitesecurity.org/t297995-0#1772644
Potpis
https://mzahorjanski.wixsite.com/mzahorjanski
https://www.fiverr.com/miroljubzahorja?up_rollout=true
https://www.youtube.com/@miroljubzahorjanski


Re: Problem sa izracunavanjem vremena 03.08.2010. u 06:09 · pre 197 meseci #6
Ja je nisam isprobavao. Ali iz priloženog se vidi da treba da joj proslediš tri parametra ili argumenta da bi dobio rezultat.

Poigraj se malo, tako što ćeš prvo da napraviš mali primer u novom .mdb fajlu. U neki VBA modul iskopiraj funkciju Diff2Dates()sa linka koji pominješ. Nad tvojom tabelom gde su ti ubeleženi dolasci i odlasci, napravi query sa izračunatim poljem i u njega upiši.....
Razlika: Diff2Dates("dhns",dolazak, odlazak)
Potpis
https://mzahorjanski.wixsite.com/mzahorjanski
https://www.fiverr.com/miroljubzahorja?up_rollout=true
https://www.youtube.com/@miroljubzahorjanski


Re: Problem sa izracunavanjem vremena 03.08.2010. u 12:52 · pre 197 meseci #7
Getsbi probao sam ovo sto ste mi napisali i sad je ok, napise: 31 minuta 23 sekundi, sto je ispravno.
Meni je sad potrebno da te podatke importujem u odredjenu tabelu kako bih ih mogao sabrati, jer prijava i odjava je svaki dan, a meni treba na kraju mjeseca ukupni zbir sati koliko je radio odredjeni radnik???
Re: Problem sa izracunavanjem vremena 03.08.2010. u 13:49 · pre 197 meseci #8
Importovanje u tabelu ili Make-Table Query koristi samo ako je nužno da to bude tabela. Možeš još uvek taj query gde si dobio rezultat da iskoristiš kao izvor podataka za sledeći queri gde ćeš sabirati vremena. Koristi Total; Sum query design modu. Ako ne ide, propusti samo reči: sabiranje vremena u polju pretraga i koristi te linkove ka temama.
Potpis
https://mzahorjanski.wixsite.com/mzahorjanski
https://www.fiverr.com/miroljubzahorja?up_rollout=true
https://www.youtube.com/@miroljubzahorjanski


Re: Problem sa izracunavanjem vremena 04.08.2010. u 16:40 · pre 197 meseci #10
Mislim da ce ti ovo pomoci da vidis kako se vreme moze racunati i prikazivati.

Pazi, prikazivanje vremena i datuma u nekom ponztom formatu nije isto sto i racunanje. racunanje se svodi na oduzimanje dva broja. Onda s tom razlikom radis sta ti odgovara, uglavnom delis sa 24, 60, 3600 i slicno.

Posto radis aplikaciju za pracenje provedenog vremena na poslu, tebi su bitni SATI a ne dani i minuti. Dani i minuti ce te samo zbuniti nepotrebno. Sati za placanje su decimalni sati. Imas u kveriju koji sam dodao na kraju kako dobijas sate za placanje.

Medjutim, videci koliko se mucis i ne razumes primere na koje su te uputili Getsbi i Banem, mislim da ces imati grdnih nevolja sa aplikacijom, ovo je tek pocetak. Racunanje vremena nije za pocetnike i mozda je bolje da to das nekome ko dokazano ume to da radi.

U svakom slucaju, srecan rad

:-)
Re: Problem sa izracunavanjem vremena 16.08.2010. u 00:02 · pre 197 meseci #12
Zidar, imam jednu molbu, ako mozes da mi na ovaj svoj primjer postavis kako bih izracunao sekunde, jer sad imam sate i minute?

Unaprijed hvala
Re: Problem sa izracunavanjem vremena 16.08.2010. u 18:23 · pre 197 meseci #13
Pa ako vec imas sate i minute, i znas da jedan minut ima 60 sekundi, malo matematike iz treceg razreda osnovne ce obaviti posao. Za matematicka pitanja postoji forum matematika na istom ovom sajtu.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme