![]() |
Datumformatierung
Hallo zusammen,
ich habe folgende Situation: Ich habe ein Datum als String in folgendem Format: YYMMDD. Nun möchte ich die einzelnen Werte extrahieren. Das führe ich mit einem Decode(StrToDate(myString), y, m, d) aus. Das Problem ist, dass das Datum vor der Umwandlung ins TDateTime Objekt eine 80 für 1980 hat und nach dem dekodieren eine 2080 fürs Jahr. Gibt es irgendwelche Methoden oder sonstiges die dieses Problem mit dem Jahrtausendwechsel behandeln? Gruß, Moony |
AW: Datumformatierung
Wenn da nur 80 steht, woher willst Du genau wissen, ob es 1980 oder 2080 sein soll? Soll es immer 1980 sein, setz halt vor der Umwandlung ein '19' davor.
[edit] Andere Möglichkeit: Datum wie gehabt umwandeln und wenn es in der Zukunft liegt, 100 Jahre abziehen
Delphi-Quellcode:
[/edit]
DateUtils.IncYear(Datum, -100);
|
AW: Datumformatierung
Willst du das Datum des aktuellen Tages auslesen?
Oder wer gibt dir den String vor, in dem dein Datum steht? Lol @Detlef: Du hast die gleiche Signatur wie ich. :) |
AW: Datumformatierung
Vermutlich wird das Datum aus irgendeinem Datenbestand kommen, sonst wäre das ja einfach zu beheben.
P.S.: Meine Sig is öller :lol: |
AW: Datumformatierung
Ja da wirste wohl recht haben, dass das Datum irgendwo aus evtl. einer DB o.Ä. ausgelesen wird. Dazu sollte sich der liebe Herr "Threadstarter" mal äußern. ^^
|
AW: Datumformatierung
Das Datum wird aus dem maschinellen Code eines Reisepasses, Personalausweises, etc. ausgelesen und dort ist nach MRP das Jahr 2 stellig definiert.
Bei dem Geburtsdatum ist das kein Problem IncYear zu verwenden. Bei dem Ablaufdatum jedoch nicht möglich, da ich nicht wissen kann, wann der Ausweis abläuft. Hätte ja sein können, dass vielleicht bereits jemand eine Allroundlösung dafür hat... Gruß, Moony |
AW: Datumformatierung
Beim Ablaufdatum könnte man ja das nehmen, was am Nächsten am aktuellen Datum liegt. Es scheint mir recht unwahrscheinlich, dass Du es mit einem Ausweis zu tun bekommst, der bereits 80 Jahre abgelaufen ist :zwinker:
|
AW: Datumformatierung
Genau, oder das Datum zwischen heute und dem Geburtsdatum.
|
AW: Datumformatierung
Dann wäre aber jeder Ausweis bereits abgelaufen.
|
AW: Datumformatierung
Ich gehe davon aus, dass zwischen heute und der Geburt weniger als 100 Jahre liegen. Dann kann es nur eine Möglichkeit (19.. oder 20..) für die beiden fehlenden Stellen im Jahr geben, oder? Die beiden anderen hat man ja schon vom Einlesen. Oder habe ich jetzt einen Knoten im Hirn? Kann schon sein ;-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 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