![]() |
IncYear mit 29.02.2004
Hallo #,
IncYear(EncodeDateTime(2004,2,29)) ergibt 28.2.2005. So steht es auch in der Hilfe. Ist denn nicht der 01.03.2005 richtig ? Heiko |
AW: IncYear mit 29.02.2004
Am letzten Tag des Monats Februar incrementierst du das Jahr und erhältst den letzten Tag im Februar des Folgejahres. So gesehen, wäre es korrekt. Abhilfe würde eine Prüfung auf Schaltjahr bringen, wobei man im Falle eines Schaltjahres den Tag noch um 1 erhöht.
|
AW: IncYear mit 29.02.2004
Wenn du ein Jahr addierst, addierst du ja 365 Tage. (außer das nächste Jahr ist ein Schaltjahr)
Addierst du also zum 29.02.2004 deine 365 Tage, erhälst du den 28.02.2005. |
AW: IncYear mit 29.02.2004
Hallo,
naja, die Funktion ruft intern IncMonths (oder so ähnlich) mit 12 auf ... Progman: Wir sind uns hier nicht so wirklich sicher. Ich habe erst mal beides eingebaut, wird per Random umgeschaltet ;) Heiko |
AW: IncYear mit 29.02.2004
Wie schon einmal beschrieben, gehen die Jahresfunktionen von Delphi davon aus, dass ein Jahr 365,25 Tage hat, was ja falsch ist.
Siehe auch in der Hilfe für YearsBetween. Da musst du schon selber korrigieren. |
AW: IncYear mit 29.02.2004
IncYear und InMonth, genauer IncAMonth geht nicht von 365,25 Tagen aus.
Dort werden indirekt die Schaltjhre korrekt behandelt. Geht der errechnete Tag aber über das Ende des Monats hinaus, so wird auf dessen Ende abgerundet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 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