Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Datum wird nach "FormatDateTime" falsch ausgegeben (https://www.delphipraxis.net/185895-datum-wird-nach-formatdatetime-falsch-ausgegeben.html)

BadenPower 23. Jul 2015 08:40

AW: Datum wird nach "FormatDateTime" falsch ausgegeben
 
Zitat:

Zitat von mkinzler (Beitrag 1309599)
Zitat:

***** Da ich eine Lösung gefunden habe, bitte ich um Schließung des Themas um weitere Diskussionen zu vermeiden - Vielen Dank *****
Dann wäre es nett, wenn Du diese hier Nennen würdest.

Hat er doch.

Zitat:

Zitat von DieFliege (Beitrag 1309541)
Zu meiner Lösung:
Ich habe das eingegebene Datum (mit oder ohne "19-hundert") mit dem aktuellen Datum verglichen und geprüft ob dieses "größer" ist als das aktuelle. Sollte es größer sein, ziehe ich 100 ab, sonst nicht. Sicherlich ist es eleganter zu lösen, da ich das Datum aber anschließend im ISO-Format ausgeben möchte, kann ich das Datum "manuell" zusammen setzen und damit gut mit meiner Lösung leben.


DieFliege 23. Jul 2015 16:05

AW: Datum wird nach "FormatDateTime" falsch ausgegeben
 
Noch einmal hallo zusammen.

Wunschgemäß führe ich hier einmal meine Funktion auf, mit der ich das Datum nun umstelle:

Delphi-Quellcode:
function ISODate(DateEU: String): String;
var
  datum_heute : Integer;
  ISO_jahr    : String;
  EU_tag      : String;
  EU_monat    : String;
  EU_jahr     : Integer;
  ISODatum    : String;

begin
  datum_heute := CurrentYear;

  EU_tag        := FormatDateTime('dd', StrToDateTime(DateEU));
  EU_monat      := FormatDateTime('mm', StrToDateTime(DateEU));
  EU_jahr       := StrToInt(FormatDateTime('yyyy', StrToDateTime(DateEU)));
    if EU_jahr > datum_heute then EU_jahr := EU_jahr -100;
  ISO_jahr      := IntToStr(EU_jahr);
  ISODatum      := ISO_jahr + '-' + EU_monat + '-' + EU_tag;

  ISODate := ISODatum;
end;
Sicherlich geht es noch kürzer, ich habe mir jedoch gedacht, lieber etwas ausführlicher schreiben um es auch später irgendwann mal wieder nachvollziehen zu können.

Ich bedanke mich noch einmal für die entgegengebrachte Hilfe und wünsche allen ein schönes Wochenende.

LG Micha

Union 24. Jul 2015 10:39

AW: Datum wird nach "FormatDateTime" falsch ausgegeben
 
So wär's vielleicht besser:
Delphi-Quellcode:
function IsoDate(const DateEU : string) : TDateTime;
var
  LFs : TFormatSettings;
begin
  LFs := TFormatSettings.Create;
  LFs.TwoDigitYearCenturyWindow := 99;
  Result := StrToDateTime(DateEU, LFs);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:22 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