Autor Beitrag
Pyr0cracker
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 164

Win XP, Ubuntu 8.04, openSUSE 11.0
Delphi 7 Personal
BeitragVerfasst: Sa 19.04.03 22:28 
hi, wie kann ich die Sekunden aus TTime rausfinden?
ich will ein prog schreiben was jede sekunde eine variable hochzählt.
geht nich mit timer, da er nicht genau ist und wenn das system hängt hält er auch an.

danke schonmal,
kuhlthomas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35



BeitragVerfasst: Sa 19.04.03 22:36 
versuch es doch mal mit GetTickCount mit dieser function erhältst du einen integer wert der dir angibt wieviele sekunden der pc schon läuft
also: GetTickCount(integer variable) und dann durch einen timer der auf 10 ms gestellt ist abfragen wann GetTickCount um 1000 gestiegen ist. das ist zwar auch nicht 100%ig genau hält die abweichungen aber zumindest in annehmbaren grenzen
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: So 20.04.03 01:55 
Hallo Pyr0crack!

Für deine Zwecke sind wirklich GetTickCount (Genauigkeit 1/1000) oder QueryPerformanceCounter (Genauigkeit 1/1000000, bin mir aber net sicher) die besseren Lösungen.
Trotzdem, so bekommst du die Sekunde heraus:
ausblenden Quelltext
1:
2:
3:
4:
5:
var
  Secs: Extended;
begin
  Secs := Now * (24 * 60 * 60);  //da 1 Tag = 24 * 60 * 60 Sekunden
end;
Gruß wulfskin!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: So 20.04.03 08:56 
Es gibt auch die Konstante SecPerDay die man statt (24*60*60) einsetzen kann.

_________________
Ist Zeit wirklich Geld?
Pyr0cracker Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 164

Win XP, Ubuntu 8.04, openSUSE 11.0
Delphi 7 Personal
BeitragVerfasst: So 20.04.03 11:52 
Zitat:

var
Secs: Extended;
begin
Secs := Now * (24 * 60 * 60); //da 1 Tag = 24 * 60 * 60 Sekunden
end;
hmm, was kommt denn da heraus, 3228550583,3228550584, etc.

Aber noch mal zu GetTickCount und QueryPerformanceCounter, ich wollte die Sekunden aus der Uhrzeit auslesen, weil wenn mein Computer mal wieder einige Zeit überlastet ist, wird auch der Zähler angehalten, bzw. verlangsamt. Und der Zähler muss auch nach mehreren Stunden noch Syncron zur Uhrzeit laufen, da gibts aber immer kleine Abweichungen.

Nur zur Info, ich brauche das für einen Internetkosten-Zähler.

gruß,
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 20.04.03 12:07 
Hilft Dir die Funktion SecondOf? Ist in der Unit DateUtils.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
dude
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48



BeitragVerfasst: So 20.04.03 12:08 
dann musst du anfangs die zeit nehmen
ausblenden Quelltext
1:
2:
3:
4:
var a : TTime;
begin
  a := Time;
end;

und dann einen Timer einbauen, der nach z.B. Intervall 1000 die Zeit abzieht
ausblenden Quelltext
1:
2:
3:
4:
5:
var b,c : TTime;
begin
b := Time;
c := b-a;
end;


ich weiss nur auch nicht, wie man nun aus TTime die Sekunden herausholt. Villeicht gibt es ja auch eine Variablen Art mit Sekunden, villeicht TSec oder sowas.