Systemzeit

Previous topic - Next topic

WPShadow

Hi,

gibt es einen Weg mit Platforminfo die Systemzeit auch in Sekunden raus zu bekommen?

Und zwar w?re mir wichtig, da? ich die gesamte Zahl raus bekomme! Damit kann ich einfacher rechnen, bevor ich Datum usw. in Sekunden umrechnen mu?...

Gru?

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Tenorm

Habs jez nicht im kopf, aber prinzipiell:
-> 'platforminfo$' zeit holen
-> mit 'SPLITSTR' zerlegen
-> ne kleine formel tippen die die einzelnen Teile alle auf sekunden umrechnet

D?rfte nicht allzu schwer sein ;)


Gru?

Tenorm

WPShadow

Soweit bin ich ja auch schon!

Aber wo beginnt man, wenn man die Tage bzw. Monate richtig umrechnet (28 Tage, 30 Tage, 31 Tage, Schaltjahr, usw.) ???
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Tiuz

Monate sind noch einfach, es gibt ja nur 12 -> Tabelle. F?r Schaltjahre gibts sicher auch feste Regeln.
Wie weit musst du denn in die Vergangenheit zur?ck? Vieleicht gen?gt es, die Differenz zu einem relativ nahen Datum in der Vergangenheit (z.B. 01.01.2009) zu bilden?

Gr??e, Tiuz.

WPShadow

Ist gar keine ?ble Idee! Ich rechne einfach ab 01.01.2009.

Die Schaltjahre bekommt man ja relativ leicht raus (mit MOD) und den Rest kann ich ziemlich einfach errechnen!

Stelle heute Abend ein kleines Beispiel online!!!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello


WPShadow

#6
hehehe  :good:

Danke, Gernot, das hilft!!!!

EDIT:

Hier habe ich die 1. L?sung! Nicht sehr elegant gel?st, aber sie scheint zu funktionieren! Schaut sie euch mal durch! Sch?nheitskorrekturen k?nnen wir danach immer noch machen:

Code (glbasic) Select


LOCAL tage, sekunden


tage = zeit_datum()


WHILE TRUE

sekunden = zeit_sek()



PRINT tage, 0, 0
PRINT sekunden, 0, 20

PRINT tage * 86400 + sekunden, 0, 60


SHOWSCREEN

WEND






FUNCTION zeit_sek:
LOCAL jetzt$, stunde_now$, minute_now$, sekunde_now$, sekunde
LOCAL stunde_now, minute_now, sekunde_now

jetzt$ = PLATFORMINFO$("time")

stunde_now$  = MID$(jetzt$, 11, 2)
minute_now$  = MID$(jetzt$, 14, 2)
sekunde_now$ = MID$(jetzt$, 17, 2)

stunde_now  = stunde_now$
minute_now  = minute_now$
sekunde_now = sekunde_now$


sekunde = stunde_now * 3600
sekunde = sekunde + minute_now * 60
sekunde = sekunde + sekunde_now

RETURN sekunde

ENDFUNCTION






FUNCTION zeit_datum:
LOCAL monat[], jetzt$, jahr_now$, monat_now$, tag_now$
LOCAL jahr_now, jahr_anzahl, monat_now, monat_anzahl, tmp, tage, tage_now, jahr_rest

jetzt$ = PLATFORMINFO$("time")

jahr_now$    = MID$(jetzt$, 0, 4)
monat_now$   = MID$(jetzt$, 5, 2)
tag_now$     = MID$(jetzt$, 8, 2)

DIM monat[12]

monat[0] = 31
monat[1] = 28
monat[2] = 31
monat[3] = 30
monat[4] = 31
monat[5] = 30
monat[6] = 31
monat[7] = 31
monat[8] = 30
monat[9] = 31
monat[10] = 30
monat[11] = 31



jahr_now  = jahr_now$
monat_now = monat_now$

jahr_anzahl  = jahr_now - 2009
monat_anzahl = monat_now

tage_now = tag_now$



IF jahr_anzahl > 0
FOR tmp = 0 TO jahr_anzahl - 1

jahr_rest = MOD(2009 + tmp, 4)

IF jahr_rest = 0
tage = tage + 366
ELSE
tage = tage + 365
ENDIF

NEXT
ENDIF

FOR tmp = 1 TO monat_anzahl - 1

IF tmp <> 2
tage = tage + monat[tmp - 1]
ENDIF

IF tmp = 2

jahr_rest = MOD(jahr_now, 4)

IF jahr_rest = 0
tage = tage + monat[tmp - 1] + 1
ELSE
tage = tage + monat[tmp - 1]
ENDIF

ENDIF

NEXT

tage = tage + tage_now


RETURN tage

ENDFUNCTION



PS.: Die *.gbas hab ich nochmal drunter!

[attachment deleted by admin]
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est