AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datum in Numerischen Wert umwandeln

Ein Thema von Berserker · begonnen am 12. Feb 2004 · letzter Beitrag vom 1. Jun 2004
Antwort Antwort
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
164 Beiträge
 
Delphi 6 Professional
 
#1

Datum in Numerischen Wert umwandeln

  Alt 12. Feb 2004, 08:24
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
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#2

Re: Datum in Numerischen Wert umwandeln

  Alt 12. Feb 2004, 08:35
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 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?
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Datum in Numerischen Wert umwandeln

  Alt 12. Feb 2004, 08:46
Hallo,
ich lese aus Deiner Frage, dass das Datu als String vorliegt. Wenn ja, probiere es mal damit:function StrToDate(const S: string): TDateTime;
  Mit Zitat antworten Zitat
johny

Registriert seit: 12. Aug 2003
Ort: Koblenz
32 Beiträge
 
#4

Re: Datum in Numerischen Wert umwandeln

  Alt 12. Feb 2004, 13:39
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.
  Mit Zitat antworten Zitat
ecspooky

Registriert seit: 26. Mai 2004
16 Beiträge
 
#5

Re: Datum in Numerischen Wert umwandeln

  Alt 1. Jun 2004, 12:26
wie genau muss ich die funktion einbauen um sie auch nutzen zu können? wollte den wert mal testweise in einem edit.text ausgeben.
mfg
ecspooky
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 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