![]() |
wie aus eigener systemtime richtiges datum machen??
hey there,
also da sich ja dieses thema ![]() wie bekomm ich eine eigene tsystemtime, also z.b. systemtime.wday + 12 wieder als funktionierendes datum hinn?? wenn ich es somache, dann würde er bei zb dem 31ten, einen 43 draus machen.. und das geht ja nun wirklich nicht ;-) wie bekomm ich also hinn, das es wieder ein ordentliches datum ergibt?? dabei ist wieder zu berücksichtigen, das units wie math, dateutils, sysutils, usw NICHT eingebunden werden, also alles wieder rein auf der win32api basierend... danke schonmal im vorraus.. |
Re: wie aus eigener systemtime richtiges datum machen??
nach langem suchen habe ich jetzt was gefunden, nur leider ist das in c++ und genau da drin bin ich ne totale niete ;-(
gibt es jemand der mir das mal nen bissel in deutsch, bzw delpisch umschreiben kann ;-) ![]() also das convertieren von systemtime und filetime damit habe ich keine probleme aber wie addiere ich zeiten auf tfiletime?? das raff ich nicht wirklich!! edit: das währe das hier: Zitat:
|
Re: wie aus eigener systemtime richtiges datum machen??
Just cast the filetime to Int64 and use add/substract operations
|
Re: wie aus eigener systemtime richtiges datum machen??
Zitat:
|
Re: wie aus eigener systemtime richtiges datum machen??
Delphi-Quellcode:
filetime := TFileTime(Int64(filetime) + YourAddition);
|
Re: wie aus eigener systemtime richtiges datum machen??
Zitat:
|
Re: wie aus eigener systemtime richtiges datum machen??
Delphi-Quellcode:
const
_SECOND: int64 = 10000000; _MINUTE: Int64 = 600000000; _HOUR: Int64 = 36000000000; _DAY: Int64 = 864000000000; var ft: FILETIME; i: Int64; begin // Set filetime to 0 which means January 1, 1601 ft.dwLowDateTime := 0; ft.dwHighDateTime := 0; // inc by 30 days ft := TFileTime(Int64(ft) + (30 * _DAY)); |
Re: wie aus eigener systemtime richtiges datum machen??
Zitat:
ok thx, i try it!! |
Re: wie aus eigener systemtime richtiges datum machen??
ok alles funzt super, respect :thumb: :thumb: :thumb:
ich hab daraus mal eine function gemacht, also fals es mal einer brauch:
Delphi-Quellcode:
function AddTime(AddTime: TSystemTime; TimeToAdd: int64): TSystemTime;
//TimeToAdd can be this: //const //_SECOND: int64 = 10000000; //_MINUTE: Int64 = 600000000; //_HOUR: Int64 = 36000000000; //_DAY: Int64 = 864000000000; //(_Day * 20) var TempFileTime: FILETIME; begin; Result := AddTime; if SystemTimeToFileTime(AddTime, TempFileTime) then begin; TempFileTime := TFileTime(Int64(TempFileTime) + TimeToAdd); FileTimeToSystemTime(TempFileTime, Result); end; end; |
Re: wie aus eigener systemtime richtiges datum machen??
Zitat:
TSysteTime ist doch ein recht einfaches Format und so schwer sollte das Rechnen damit doch nicht sein? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 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 by Thomas Breitkreuz