[ Nemanja Avramović @ 03.04.2005. 13:28 ] @
| Dakle, treba da dobijem broj sekundi od nekog referentnog datuma, kao što je u php-u funkcija time() koja vraća timestamp (broj sekundi) od 01.01.1970. godine
Evo iz help-a:
Citat:
To find the fractional number of days between two dates, simply subtract the two values, unless one of the TDateTime values is negative. Similarly, to increment a date and time value by a certain fractional number of days, add the fractional number to the date and time value if the TDateTime value is positive.
I to je cool, ali meni treba broj sekundi! |
[ Srki_82 @ 03.04.2005. 13:42 ] @
Ako taj nacin vraca broj dana sta je onda problem :) Pomnozis tu vrednost sa 24*60*60 i dobijes koliko je to sekundi, zar ne?
[ Nemanja Avramović @ 03.04.2005. 13:59 ] @
da, ali nece se svake sekunde povecavati taj broj!!!
[ sasas @ 03.04.2005. 14:08 ] @
A ovo?
Code:
uses ...DateUtils...
.
.
.
ShowMessage(inttostr(SecondsBetween(now, EncodeDate(1970, 1, 1))));
ss.
[ Nemanja Avramović @ 03.04.2005. 14:12 ] @
ovako kako vidim iz koda, to je to
hvala ss!
[ Toyo @ 03.04.2005. 14:49 ] @
Citat: da, ali nece se svake sekunde povecavati taj broj!!!
Povecavace se, ali ne celobrojni deo, vec onaj iza zareza.
TDateTime je tipa Double. Ako pomnozis kao sto ti je Srki rekao dobices ono sto trazis.
Code:
Datum1:=now;
sleep(2000);
Datum2:=now;
Sekundi := round((Datum2-Datum1)*24*60*60);
[ broker @ 03.04.2005. 15:34 ] @
Probaj sa GetTickCount(). Meni se to uvek vise svidjalo kao resenje sa merenjem protoka vremena izmejdu dva trenutka.
[ Rapaic Rajko @ 04.04.2005. 10:17 ] @
GetTickCount je broj tick-ova od momenta startovanja racunara i taj se brojac obrne svakih 49 dana. Kako to moze coveku da posluzi za racunanje razlike nekog datuma u sekundama???
Rajko
[ Nemanja Avramović @ 04.04.2005. 19:21 ] @
stvarno ne znam... a u vezi drugog dela tvoje konstatacije... hoces da kazes da ako je racunar ukljucen recimo 2 meseca, broj tickova nece biti korektan? sh*t
[ Srki_82 @ 04.04.2005. 22:56 ] @
Pa... znas i sam da nista ne moze da broji do beskonacno  Zamisli da program radi 100000000000000 godina u kopji tip promenljive bi ti trebao da u njoj cuvas broj sekundi koji je prosao od pocetka rada programa? 
Mozes da koristis GetTickCount i da koristis jos jednu promenljivu koja ce svaki put kada GetTickCount ponovo postane nula (posle 49 dana) da se poveca za jedan. Ako je ta promenljiva tipa Cardinal moci ces da meris vreme 49*MaxCardinal dana sto je sasvim dovoljno, zar ne?
[ sasas @ 04.04.2005. 23:48 ] @
Citat: Mozes da koristis GetTickCount i da koristis jos jednu promenljivu koja ce svaki put kada GetTickCount ponovo postane nula (posle 49 dana) da se poveca za jedan.
eh, ako već bistrimo teoriju, ovo ne pije vode :) tj. u specijalnim slučajevima bi i pomozi bože radilo, ali generalno ne bi.
šta bi bilo da program bude u po neke I/O operacije u trenutku kad se TickCount 'okrene'? Nula ne bi bila konstatovana... ili recimo da u tom trenutku Windowsi odluče da urade nešto sami sa sobom i oduzmu ti procesorsko vreme? Ili recimo ako GetTickCount konstatuješ u redovnim ali velikim vremenskim intervalima (recimo proveravaš nešto svakih 30 dana)?
ss.
[ Srki_82 @ 04.04.2005. 23:51 ] @
Imas promenljivu u kojoj drzis poslednju procitanju vrednost iz GetTickCount recimo da se zove LastTickCount. Kada LastTickCount bude vece od GetTickCount znaci da je doslo do obrtanja brojaca i treba povecati BrojacObrnut za jedan. Ovo vazi ako proveravas GetTickCount dovoljno cesto... bar 49 dana.
[ sasas @ 05.04.2005. 00:33 ] @
Tako bi već i proradilo...
ss.
[ nikola.j @ 05.04.2005. 19:41 ] @
>
>
Bila je pre jedno pola godine priča o softveru pisanom za kontrolu letenja negde
u Ameriki :) gde je programer jednostavno zaboravio na obratnje časovnika (na
tih 49 dana) i desio se haos. Nije bilo nastradalih (osim možda tog programera)
zato što su se snašli, pa su valjda ručno odradili posao.
[ Nemanja Avramović @ 05.04.2005. 23:41 ] @
eto... ni ja to ne bih znao... glupo je 49 dana... kad moze (primer iz php-a) da broji broj sekundi od 01.01.1970. ... moglo bi i to malo duze da `drzi` :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|