![]() |
Re: wie aus eigener systemtime richtiges datum machen??
nja, ganz ehrlich ... mit einem umweg über sowas wie TFileTime, TDateTime oder ähnliches ist es natürlich einfacher, da diese in Zeit seit einem bestimmten Zeitpunkt rechnen und somit das ganze Zeugs wie unterschiedlich lange Monate und Schaltjahre anders/einfacher gehandhabt werden kann.
+ 1 Tag
Delphi-Quellcode:
+ 1 Monat
Inc(Time.wDay);
If Time.wDay > DaysInMonth(Time.wMonth, Time.wYear) Then Begin Time.wDay := 1; Inc(Time.wMonth); If Time.wMonth) > 12 Then Begin Time.wMonth := 1; Inc(Time.wYear); End; End;
Delphi-Quellcode:
+ 1 Jahr
Inc(Time.wMonth);
If Time.wMonth) > 12 Then Begin Time.wMonth := 1; Inc(Time.wYear); End;
Delphi-Quellcode:
Inc(Time.wYear);
|
Re: wie aus eigener systemtime richtiges datum machen??
I might be picky but this is not accounting for leap years (when there is a february 29th) :wink:
|
Re: wie aus eigener systemtime richtiges datum machen??
Hallo,
zugegeben, ich habe den Thread nicht ganz gelesen, aber wenn ich Zeit-Arithmetik auf Windows-Ebene benötigen würde, dann würde ich wohl eher die Abbildungskette SYSTEMTIME <-> FILETIME <> time_t benutzen, wobei time_t die serial time aus der C Runtime Library ist. Für die erste Konvertierung gibt es API Funktionen, für die letzte eine Formel. Das Kapitel im Platform SDK heißt "Windows Time". Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:54 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