AGB  ·  Datenschutz  ·  Impressum  







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

Zeit zwischen 2 daten

Ein Thema von wallwriht · begonnen am 8. Jun 2010 · letzter Beitrag vom 10. Jun 2010
Antwort Antwort
Seite 1 von 3  1 23      
wallwriht

Registriert seit: 23. Mär 2010
30 Beiträge
 
#1

Zeit zwischen 2 daten

  Alt 8. Jun 2010, 21:55
Hi Leute,


Ich habe 2 Daten und möchte die zeit zwischen ihnen auslesen.
Habs bislang so probiert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Tage,t1,t2 : Tdatetime;
zeit :Ttime;
s1,s2:string;


begin
Label1.Caption:=Timetostr(Now);
Label2.Caption:=Datetimetostr(Now);

s1:=datetimetostr(now);
s2:='03.06.2010 18:34:30';
Label3.Caption:=s1 + ' ' + s2;;
t1:=strtodatetime(s1);
t2:=strtodatetime(s2);
Tage:=t1 - t2;
Label4.Caption:=datetimetostr(Tage);

end;


Dies funktioniert aber nicht, es ergiebt immer das gleiche: 4.1.1900 .....
wo liegt der fehler?


lg
Wallwriht



als hinweis noch: Die label 1-3 sind zur hilfe um die einzelnen Daten zu zeigen.

Geändert von mkinzler ( 8. Jun 2010 um 21:58 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 21:58
Schau dir mal die Unit DateUtils an
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 22:00
TDateTime ist intern nur ein Extended, d.h. dort steht zurzeit ein Wert von über 30000 drin. Das Startdatum, d.h 0, ist der 1.1.1900 (soweit ich das noch weiß). Ein Tag zählt dabei als 1. Siehe:
Delphi-Quellcode:
var
  Timestamp : TDateTime;
begin
  Timestamp := Now();
  Timestamp := Timestamp + 1; // Einen Tag dazu addieren
end;
Das Problem bei dir ist, dass du dir das konkrete Datum ausgeben lässt. Es sind zwar drei Tage vergangen, aber du musst das immer relativ zum Startdatum sehen. So wie du es machst ist es relativ vom 1.1.1900 aus, plus die Difference.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#4

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 22:05
Schau dir mal die Funktion DaysBetween (F1) an
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 22:07
Zitat:
Label4.Caption:=datetimetostr(Tage);
Versuch es stattdessen mal mitLabel4.Caption:=FloatToStr(Tage); , das sollte die Differenz in Tagen ergeben. Zur genaueren Ausgabe kannst Du wie erwähnt die Funktionen aus DateUtils nutzen oder selbst umrechnen.
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
wallwriht

Registriert seit: 23. Mär 2010
30 Beiträge
 
#6

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 22:08
habe mir gerade days between angeschaut werde aber nnicht schlau draus. soll ich der funktion einfach anow und athen übergeben und das result ust dann mein komplettes ergebnis?


Das Problem ist auch das ich das ergebnis auf die minute oder sogar sekunde brauche
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#7

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 22:09
@ s.h.a.r.k:
Tag 0 ist der 30.12.1899, warum auch immer

@wallwriht:
Ja! Die Vorkommazahl ist die Anzahl der Tage,
die Nachkommastellen kannst du mit Trunc abschneiden
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824

Geändert von Wolfgang Mix ( 8. Jun 2010 um 22:14 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 22:10
Weil 1 halt der 01.01.1900 ist
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 22:11
@wallwriht: Du übergibst der Funktion 2 Daten und erhältst die Differenz in Tagen.

[edit] Allerdings nur in ganzen Tagen, da eine ganze Zahl zurückgegeben wird [/edit]
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 s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#10

AW: Zeit zwischen 2 daten

  Alt 8. Jun 2010, 22:12
Und weil 2 dann wohl der 02.01.1900 ist

@Wolfgang Mix: Asche auf mein Haupt
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:11 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