AGB  ·  Datenschutz  ·  Impressum  







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

TDateTime bei über 24h abbruch

Ein Thema von Haegar · begonnen am 21. Apr 2003 · letzter Beitrag vom 22. Apr 2003
Antwort Antwort
Seite 1 von 3  1 23      
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#1

TDateTime bei über 24h abbruch

  Alt 21. Apr 2003, 13:27
hi,
ich hab ne stoppuhr programmiert, als wert der hochgezählt wird hab ich dafür ne variable vom typ TDateTime verwendet, nun muss ich aber feststellen, das die zum beispiel bei über 24h ne fehlermeldung bringt.
also zumindest wenn ich den wert dann lade!
wenn er läuft, und erreicht die 24h marke, geht er ja auf 0 zurück!
nun die frage, kann ich es trotzdem mit diesem datentypen regeln, das er z.B. bis 99h läuft, man diesen wert speichert, und immer wieder laden kann ohne den abbruch? oder muss ich dafür nen andern datentypen nehmen?

gruss haegar
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 21. Apr 2003, 15:39
Hallo Haegar,
der Abbruch liegt sicher nicht an dem TDateTime Typ, der eine Reele Zahl ist. Der Abbruch muss woanders herkommen. Poste doch mal die Stelle rund um die "Fehlerzeile".
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 21. Apr 2003, 16:01
das problem is ja erst zur laufzeit, un da kommt dann die fehlermeldung 25:04:00 is not a valid Time
jetzt als beispiel, ich denke er gibt die fehlermeldung bei 24:00:00 oder spätestens bei 24:00:01 aus!
ich glaube kaum das es an was anderem liegt, denn es klappt mimt allen angaben, nu nicht mit werten über die über 24h hinaus gehen

gruss haegar
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#4
  Alt 21. Apr 2003, 16:22
Hallo Haegar,

ich denke da hat Delphi ja nicht ganz unrecht : so 25:08 ist ja ein wenig komisch. Die Frage ist aber wie erzeugst du aus deinem TDateTime Wert diese Anzeige?
Der Wert selbst ist ja wie gesagt einfach eine Realzahl.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#5
  Alt 21. Apr 2003, 16:26
hab das bisher so gemacht!
Delphi-Quellcode:
procedure TForm1.timerTimer(Sender: TObject);
begin
 dauer:=Now-start+bisher;
 lbl_zeit.Caption:=FormatDateTime('t',dauer);
end;

//im FormCreate
ShortTimeFormat:='hh "h" nn "min" ss "s"';
gruss haegar
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#6
  Alt 21. Apr 2003, 16:34
Hallo Haegar,

du ikannst entweder TimeToStr benutzen, eine Funktion, die immer nur Werte bis 24:00:00 ausgibt, oder um bei deinem Code zu bleiben. Wenn du nur den Teil nach dem Komma nutzt, erhälst du die Uhrzeit:

dauer:=Frac(Now-start+bisher); Der Anteil vor dem Komma sind die ganten Tage, die du mit Frac einfach abschneidest.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#7
  Alt 21. Apr 2003, 16:43
naja mit der funktion TimeToStr und StrToTime hab ich sie gespeichert, bzw. lade sie damit....das problem is ja das ich nicht werte laden kann, die jenseits der 24h liegen, soll ich da nen anderen datentypen wählen?? oder geht das irgendwie mit dem TDateTime??
ich denke mal da liegt das problem

gruss haegar
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#8
  Alt 21. Apr 2003, 16:47
Hallo Haegar,

du kannst es weiter wie bisher machen, wenn du wie oben gezeigt die Funktion Frac verwendest.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#9
  Alt 21. Apr 2003, 16:56
und wenn ich dir sage das er trotzdem meckert?
selbe fehlermeldung

gruss haegar
edit: so mal die fehlermeldung in anhang gemacht, war nur ein test mit der zeit, aber die erscheint nach wie vor immer noch
Miniaturansicht angehängter Grafiken
fehler_105.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Wolff68
Wolff68

Registriert seit: 19. Apr 2003
Ort: Raum Stuttgart
3 Beiträge
 
Delphi 6 Professional
 
#10
  Alt 21. Apr 2003, 19:02
Wie wärs denn mit dem hier als Anzeige:
Code:
dauer := IntToStr(MyHoursBetween(ANow, AThen))
        +FormatDateTime(':nn:ss:zzz', Abs(AThen-ANow));
Damit kannst die Stoppuhr laufen lassen, bis der Int64 überläuft (bis dahin sind wir nichtmal mehr Staub!)

Statt MyHoursBetween kannst auch HoursBetween aus der Unit DateUtils nehmen. Aber ich binde dieses Monster ungern wegen einer Zeile Code ein.
Hier der Code:
Code:
function MyHoursBetween(ANow, AThen: TDateTime): INT64;
begin
  Result := Trunc(24*Abs(AThen-ANow));
end;
Ähmm. ANow steht hierbei für die StartZeit, und AThen für die Stop-Zeit.
(Wobei es hier ohnehin egal ist, wenn Du das vertauschst)
  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 14:10 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