AGB  ·  Datenschutz  ·  Impressum  







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

Datum in Integer umwandeln

Ein Thema von N30N · begonnen am 17. Okt 2007 · letzter Beitrag vom 23. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
N30N

Registriert seit: 7. Aug 2007
78 Beiträge
 
#1

Datum in Integer umwandeln

  Alt 17. Okt 2007, 10:35
Hi,

ich würde gerne eine Uhrzeit in Integer, anstatt in string umwandeln. Die normale Funtkion "timeToStr( time() );" gibt es mir nur als string aus.

Wie kann ich denn zwei Uhrzeiten voneinander abziehen? Die Punkte im Datum führen ja sicherlich zu einem ungültigem Interger Wert.


Danke schonmal
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#2

Re: Datum in Integer umwandeln

  Alt 17. Okt 2007, 10:42
Der TDateTime Wert ist eigentlich eine Fließkommazahl.
Der Teil vor dem Komma ist das Datum, die Nachkommastellen sind die Uhrzeit.

Deswegen kannst Du zwei TDateTime-Werte auch direkt voneinander abziehen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#3

Re: Datum in Integer umwandeln

  Alt 17. Okt 2007, 10:44
Du kannst Dir ja auch einmal diesen Thread ansehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Datum in Integer umwandeln

  Alt 17. Okt 2007, 10:54
Hai N20N,

ich werfe mal einfach einige Funktionsnamen in den Raum

Delphi-Quellcode:
// Aus DateUtils. Weiss aber nicht ab welcher Delphiversion vorhanden
  DaysBetween()
  MonthsBetween()
  YearsBetween()
  HoursBetween()
  MinutesBetween()
  SecondsBetween()
// Aus SysUtils
  EncodeDate()
  DecodeDate()
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
N30N

Registriert seit: 7. Aug 2007
78 Beiträge
 
#5

Re: Datum in Integer umwandeln

  Alt 17. Okt 2007, 15:28
Okay, mittlerweile hab iche s hinbekommen zwei Uhrzeiten voneinander abzuziehen.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.Text := timeToStr( time() );
end;

procedure TForm1.Button1Click(Sender: TObject);
var
Zeit : tdatetime;
Zeit2 : tdatetime;
Ergebniss :tdatetime;
begin
Zeit := strtotime(edit2.Text);
Zeit2 := strtotime(edit1.Text);
Ergebniss := Zeit - Zeit2;
edit3.Text := timetostr(Ergebniss)
end;

Eventuell etwas umständlich, aber es funktioniert ^^




So, nun müsst ich mein Ergebniss nur noch ordentlich umwandeln können, so dass ich zum Beispiel Stunden, Minuten und Sekunden in Variablen speichern kann. Ich will als Endergebniss die Zeit die verbleibt als Sekunden haben. Wie stell ich das jetzt an?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

Re: Datum in Integer umwandeln

  Alt 17. Okt 2007, 15:36
Wenn Du 2 TDateTime voneinander abziehst, hast Du die Differenz in Tagen. Mit 24 multipliziert ergibt das die Differenz in Stunden. Diese mit 60 multipliziert ergibt die Differenz in Minuten. Wie kommt man nun auf Sekunden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
N30N

Registriert seit: 7. Aug 2007
78 Beiträge
 
#7

Re: Datum in Integer umwandeln

  Alt 23. Okt 2007, 10:39
Zitat von DeddyH:
Wenn Du 2 TDateTime voneinander abziehst, hast Du die Differenz in Tagen. Mit 24 multipliziert ergibt das die Differenz in Stunden. Diese mit 60 multipliziert ergibt die Differenz in Minuten. Wie kommt man nun auf Sekunden?
Hm, es geht hier aber um Time, nicht um Date


Wenn ich zum Beispiel rechne: 10:40:00 - 10:30:00, dann kommt da 00:10:00 raus. Durch multiplizieren mit 60 hätte ich dann den Wert in Sekunden. Doch wie genau multipliziere ich jetzt einen Wert mit Doppelpunkten mit 60? Ausserdem müsste ich ja dann irgendwie die Stunden / Minuten und Sekunden voneinander trennen, da ich ja nicht das komplette Ergebniss * 60 nehmen kann.

Wie stell ich das an?
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#8

Re: Datum in Integer umwandeln

  Alt 23. Okt 2007, 10:52
z.B. mit Delphi-Referenz durchsuchenDecodeTime aus der Unit SysUtils.
Guck Dir in der Onlinehilfe mal die ganzen Sachen in der Kategorie Datum/Zeit an.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

Re: Datum in Integer umwandeln

  Alt 23. Okt 2007, 10:59
Zitat von N3ON:
Hm, es geht hier aber um Time, nicht um Date
Zitat von Delphi-Hilfe:
type TTime = type TDateTime;
Merkst was? Wenn es nur um Uhrzeiten geht, sind das eben 0 Tage, die Berechnung bleibt die gleiche.
Schau Dir mal dies Beispiel an:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Start, Ende, Differenz, DiffInSek: TTime;
begin
  Start := StrToTime('10:20:00');
  Ende := StrToTime('12:50:10');
  Differenz := Ende - Start;
  DiffInSek := Differenz * 24 * 60 * 60;
  ShowMessage(FormatDateTime('hh:nn:ss',Differenz) + #13#10 +
              Format('Enspricht %.0f Sekunden',[DiffInSek]));
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Datum in Integer umwandeln

  Alt 23. Okt 2007, 23:12
Zitat von DeddyH:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Start, Ende, Differenz, DiffInSek: TTime;
begin
[...]
  Differenz := Ende - Start;
  DiffInSek := Differenz * 24 * 60 * 60;
[...]
end;
War da nicht ein paar Posts weiter oben was mit SecondsBetween() ?
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:17 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