Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Datum in Numerischen Wert umwandeln (https://www.delphipraxis.net/16185-datum-numerischen-wert-umwandeln.html)

Berserker 12. Feb 2004 08:24


Datum in Numerischen Wert umwandeln
 
Hallo Delphi-Gemeinde.

Ich stehe mal wieder vor einem Problem wo ich bis jetzt keine Lösung gefunden habe.

Ich portiere eine alte Applikation welche auf DBase basierte in Delphi.
zum Problem:

Im Programm wird das aktuelle Tagesdatum in einen numerischen Wert umgewandelt.

Der Befehl unter DBase lautet DTON()

Auszug aus der Hilfe:

Zitat:

Beschreibung:
Die Funktion DTON ("Date to Numeric") wandelt ein Datum in eine Zahl um. Genauer gesagt
berechnet sie, wieviele Tage seit dem 1.1.4713 v.Chr. vergangen sind - ideal, um mit
Datumsangaben zu rechnen.
Wie kann ich diese Funktion in Delphi umsetzten?

MfG, Ronny

Treffnix 12. Feb 2004 08:35

Re: Datum in Numerischen Wert umwandeln
 
Ich versteh nicht ganz genau, was du willst? Willst du die Daten, die du mit dem alten Programm gespeichert hast, in der neuen Version wieder auslesen können? Oder schreiben? Oder beides?

Das TDate bei Delphi ist ja im Grunde schon eine Zahl. Nur mit anderem Nullpunkt als bei dir:

Zitat:

Zitat von OH
Ein TDate-Wert gibt die Anzahl der Tage seit dem 30.12.1899 an.

Da müsstest du dann im Grunde nur die Differenz zwischen dem 30.12.1899 und 1.1.4713 in Tagen abziehen bzw. zu deinen alten Daten addieren und hättest so den TDate-Wert.

Oder hab ich das Problem verpeilt?

Jens Schumann 12. Feb 2004 08:46

Re: Datum in Numerischen Wert umwandeln
 
Hallo,
ich lese aus Deiner Frage, dass das Datu als String vorliegt. Wenn ja, probiere es mal damit:
Delphi-Quellcode:
function StrToDate(const S: string): TDateTime;

johny 12. Feb 2004 13:39

Re: Datum in Numerischen Wert umwandeln
 
Ich weiß nicht so genau, was du vor hast, aber ich habe mal eine Programm geschrieben, in dem die Systemzeit ausgelesen und als String and die Funktion GenerateFileName übergeben wird. Diese entfernt Trennzeichen wie '.' und ':' aus dem String und liefert einen String zurück. Die übrig gebliebenen Zahlen, können als Integer gespeichert werden.

Delphi-Quellcode:
function GenerateFileName(s:string):string;
var
 iPosition : integer;
 sString : string;
begin
 iPosition := 1;
 while iPosition <= length(s) do
 begin
  case s[iPosition] of
   '.',':':
   iPosition := iPosition+1;
   else
   sString := sString + s[iPosition];
   iPosition := iPosition + 1;
  end;
 end;
 Result := sString;
end;
Damit könnte man dann rechnen.

ecspooky 1. Jun 2004 12:26

Re: Datum in Numerischen Wert umwandeln
 
wie genau muss ich die funktion einbauen um sie auch nutzen zu können? wollte den wert mal testweise in einem edit.text ausgeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr.

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