Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   wie aus eigener systemtime richtiges datum machen?? (https://www.delphipraxis.net/107378-wie-aus-eigener-systemtime-richtiges-datum-machen.html)

himitsu 27. Jan 2008 12:01

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:
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;
+ 1 Monat
Delphi-Quellcode:
Inc(Time.wMonth);
If Time.wMonth) > 12 Then Begin
  Time.wMonth := 1;
  Inc(Time.wYear);
End;
+ 1 Jahr
Delphi-Quellcode:
Inc(Time.wYear);

Remko 27. Jan 2008 12:31

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:

marabu 27. Jan 2008 14:27

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 03:37 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz