AGB  ·  Datenschutz  ·  Impressum  







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

Stunden/Minuten in Dezimalwerten

Ein Thema von newuser01 · begonnen am 13. Apr 2007 · letzter Beitrag vom 13. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#1

Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 11:51
Hallo

Ich ermittle in meinem Programm die Stunden zwischen zwei Zeitangaben z.b von 09:00 bis 10:25 Als Ausgabe lass ich mir die Stunden dann in Dezimalwerten anzeigen in diesem Fall kommt also (1,41666666666667)raus. Jetzt hab ich aber 1. das Problem, wenn ich von 07:00 bis 08:00 ermittle müsste ja (1,0) rauskommen aber, es kommt (0,999999999999999) raus. Wenn ich aber von 08:00 bis 09:00 ermittle dann zeigt er mir (1,0) an also richtig, blos woran liegt das ? Kann es sein das es was mit Primzahlen zu tun hat ? weil ja die (7) eine wäre. Das 2. Problem ist das ich nur zwei stellen nach dem Komma anzeigen möchte, wie könnte ich dies lösen?


Delphi-Quellcode:
 
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
Start, Ende, Gesamt: TDateTime;
begin

 Start := StrToDateTime(eStart.Text);
 Ende := StrToDateTime(eEnde.Text);
 Gesamt:= (Ende - Start);

 eGesamt.Text := FloatToStr(24*(Gesamt)); //Dezimalausgabe

end;
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 11:55
Nimm besser einen TDateTimePicker
Markus Kinzler
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 11:56
Mit

Frac(Gesamt); bekommst Du schon den Nachkommaanteil Deines TDateTime Wertes, diesen müsstest Du nur noch in Stunden umrechnen.
Uwe
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 12:00
Zitat von newuser01:
Das 2. Problem ist das ich nur zwei stellen nach dem Komma anzeigen möchte, wie könnte ich dies lösen?
Mit der Funktion format:

label1.caption := format('%.2f',[Gesamt*24]) ;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#5

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 12:03
TTime/TDate/TDateTime sind eigentlich nur Double (reelle Typen)

und diese haben nunmal Rundungsfehler.


Diese kannst du dann höchstens selber entsprechend der gewünschten Auflösung auf passende Werte runden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#6

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 12:19
Also das mit den Kommastellen funktioniert schon mal. Ich lass aber besser 3 Stellen nach dem Komma anzeigen ist wohl nachher nach dem addieren genauer oder Das (0,999999999999999) Problem ist damit ebenfalls gelöst, zumindest zeigt er bei 07:00 - 08:00 jetzt 1,000 an


DANKE FÜE DIE HILFE !!!
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#7

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 12:24
Zitat von newuser01:
Das (0,999999999999999) Problem ist damit ebenfalls gelöst, zumindest zeigt er bei 07:00 - 08:00 jetzt 1,000 an
das Format/die FPU rundet standardmäßig auf/ab, also da funktioniert es ... falls aber jemand/etwas in deinem Programm das Rundungsverhalten der FPU umstellt, dann war's das wieder mit dem "es klapp".
Aber im Normalfall sollte es wohl klappen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#8

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 12:28
FPU ?


Oder wäre es besser die Zeit zwischen zwei Zeitangaben erst in reine Minuten umzurechnen und dann erst alle addieren und in Stunden (Dezimal) umrechnen ? Blos wie mach ich das
Gruß: Holger

[Hobby-Programmierer]
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#9

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 12:32
moin,

es gibt in der RTL dazu viele hilfreiche Funktionen, die du verwenden könntest. Oder aber du schreibst dir selbst ein paar kleine Funktionen, die das Problem lösen.

Ich würde die beiden Daten in Sekunden umrechnen und anschließend vom größeren Wert den kleineren abziehen. Dann hast du die Differenz in Sekunden und müßtest dann lediglich von Sekunden in Minuten/Stunden umrechnen.
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#10

Re: Stunden/Minuten in Dezimalwerten

  Alt 13. Apr 2007, 12:38
Wenn ich nur mal "Minuten" in der Delphihilfe eingebe bekomme ich zb. für "DateUtils" ein haufen "Routinen" ausgespuckt. Aubacke sich dort erstmal durchfinden Na OK ich habe ja noch ein paar Jährchen Zeit
Gruß: Holger

[Hobby-Programmierer]
  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 09:57 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