![]() |
Datumsvergleich im Quelltext vereinfachen
Hallo,
ab und an kommt es vor, dass bestimmte Funktionen erst später aktiviert werden sollen. Als Beispiel das SEPA Format 3.7. Was natürlich geht aber nicht optimal ist:
Delphi-Quellcode:
Solche Strings möchte ich aber im Quelltext nicht haben und ich lasse mir mit einem Miniprogramm das umrechnen.
if (Date > StrToDate('17.3.2024')) then
... Schöner wäre es, wenn man im Editor die Möglichkeit hätte, diesen String bereits in einen TDate zu wandeln. Ich habe MMX, GExpert und cnPack installiert, hier aber keine Option dafür gefunden. Als Lösung könnte ich mir vorstellen, dass ich den string markiere und dann eine Erweiterung diese Markierung in den TDate konvertiert. '17.3.2024' -> 45368 {17.3.2024} Vieleicht sucht ja ein Expertenentwickler noch nach neuen Features. |
AW: Datumsvergleich im Quelltext vereinfachen
Wäre die Verwendung von EncodeDate eine Alternative?
Delphi-Quellcode:
if Date > EncodeDate(2024, 03, 17) then
|
AW: Datumsvergleich im Quelltext vereinfachen
Das ist eine Alternative, die aber auch zusätzlichen Code erzeugt, den ich möglichst vermeiden wollte.
|
AW: Datumsvergleich im Quelltext vereinfachen
StrToDate und auch EncodeDate kann man auch im Evaluate / Modify Fenster beim Debugging aufrufen. Vielleicht reicht das ja schon? Ansonsten ist ein passendes Programm dafür in 2 Minuten geschrieben.
|
AW: Datumsvergleich im Quelltext vereinfachen
Das Programm hab ich ja bereits, aber wenn es direkt in Editor per z.B. rechter Maustaste ginge, wäre es komfortabler.
|
AW: Datumsvergleich im Quelltext vereinfachen
Zitat:
Delphi-Quellcode:
const
day = 17; month = 3; year = 2024; {$REGION 'calculate _date'} _monthdays = Ord((month > 1))*31 + Ord((month > 2))*(28 + ord(year mod 4 = 0)) + Ord((month > 3))*31 + Ord((month > 4))*30 + Ord((month > 5))*31 + Ord((month > 6))*30 + Ord((month > 7))*31 + Ord((month > 8))*31 + Ord((month > 9))*30 + Ord((month > 10))*31 + Ord((month > 11))*30; _year = year - 1; _date = _year * 365 + _year div 4 - _year div 100 + _year div 400 + _monthdays + Day - DateDelta; {$ENDREGION} TheSpecialDate = _date; |
AW: Datumsvergleich im Quelltext vereinfachen
Zitat:
|
AW: Datumsvergleich im Quelltext vereinfachen
Zitat:
|
AW: Datumsvergleich im Quelltext vereinfachen
Hallo,
wie wäre es, wenn Du diese Variablen in eine Konfig-Datei auslagerst? |
AW: Datumsvergleich im Quelltext vereinfachen
Ich finde es nicht sinnvoll, wenn man im Code nicht direkt sehen und prüfen kann, was passiert. Der Kommentar schützt davor nicht, denn der kann ja auch falsch sein.
Deshalb würde ich immer die korrekten menschenlesbaren Werte verwenden und mit dem schon genannten EncodeDate regionsunabhängig (deshalb kein String) umwandeln. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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