![]() |
Re: wie aus eigener systemtime richtiges datum machen??
Zitat:
deswegen der umweg ;-) |
Re: wie aus eigener systemtime richtiges datum machen??
schon bemerkt das es ein record ist, welcher auf netten WORDs besteht?
damit kann man doch wunderbar rechnen und dank einiger "neuer" Funktionen (z.B. Operatoren) für Records, kann man sich auch notfalls den TSystemTime-Record erweitern. |
Re: wie aus eigener systemtime richtiges datum machen??
ok dan geb mal ebend ein bsp, denn ich hab kp wie ich das anstellen soll, bin nämlich froh das es mit der anderen funktion jetzt funktioniert, und das hat mich schon halb zum verzweifeln gebracht, ich bin froh das es jetzt alles so läuft wie es soll...
|
Re: wie aus eigener systemtime richtiges datum machen??
Delphi-Quellcode:
oder
i := (X.Sekunde + Sekunden) div 60;
X.Sekunde := (X.Sekunde + Sekunden) mod 60; i2 := i; i := (X.Minute + i2) div 60; X.Minute := (X.Minute + i2) mod 60; i2 := i; i := (X.Stunde + i2) div 24; X.Stunde := (X.Stunde + i2) mod 24; ...
Delphi-Quellcode:
oder ...
i := X.Sekunde + Sekunden;
X.Sekunde := i mod 60; i := i div 60 + X.Minute; X.Minute := i mod 60; i := i div 60 + X.Stunde; X.Stunde := i mod 24; i := i div 24 + X.Tag; ... Mathematik halt .. nja, zumindestens hast du dir so ganz "elegant" das Problem mit den ungleichlangen Monaten und den Schaltjahren vom Hals geschafft :stupid: |
Re: wie aus eigener systemtime richtiges datum machen??
ja das ja schön und gut, aber wie soll ich das denn jetzt systemtime zuweisen?? das problem ist ja das ich Tsystemtime keine eigenen variablen addieren kann, ich kann zwar schon addieren, aber er akzeptiert das nicht... die berechnung ist ja nicht das problem sondern nur die zuweisung, und das geht halt nur wenn ich "leider" den umweg über filetime nehme..
|
Re: wie aus eigener systemtime richtiges datum machen??
wieso soll man da nix zuweisen können?
Delphi-Quellcode:
function AddTime(Time: TSystemTime; mSecsToAdd: int64): TSystemTime;
begin; Inc(mSecsToAdd, Time.wMilliseconds); Time.wMilliseconds := mSecsToAdd mod 1000; mSecsToAdd := mSecsToAdd div 1000 + Time.wSecond; Time.wSecond := mSecsToAdd mod 60; mSecsToAdd := mSecsToAdd div 60 + Time.wMinute; Time.wMinute := mSecsToAdd mod 60; mSecsToAdd := mSecsToAdd div 60 + Time.wHour; Time.wHour := mSecsToAdd mod 24; mSecsToAdd := mSecsToAdd div 24 + Time.wDay; ... end; |
Re: wie aus eigener systemtime richtiges datum machen??
Vom Variablennamen her addierst du Millisekunden auf Sekunden?
|
Re: wie aus eigener systemtime richtiges datum machen??
schön und gut, deine funktion nur ich glaub du hast mein problem nicht verstanden:
du kannst tsystemtime nichts zuweisen, bzw nichts addieren (zumindest nicht so) denn dann kommt kein glütiges datum mehr herraus! |
Re: wie aus eigener systemtime richtiges datum machen??
meinst du mich? (@Muetze1)
mSecs = MilliSeconds :angel2: klar hab ich dich verstanden ... beim Addieren mußt du halt drauf achten, daß die Werte im gültigen Bereich bleiben. Also wenn zu 59 Sekunden eine Sekunde zuaddiert wird, dann kommt 0 raus und zu Minute muß 1 zuaddiert werden. |
Re: wie aus eigener systemtime richtiges datum machen??
na wie muss ich das denn zb aufrufen wenn ich einen tag addieren will?? weil eigentlich geht es mir mehr um tag, monat und jahr..
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz