AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Zeitenberechnungs-Unit, bitte um Tests
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitenberechnungs-Unit, bitte um Tests

Ein Thema von BingoBongo · begonnen am 30. Mai 2007 · letzter Beitrag vom 31. Mai 2007
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Zeitenberechnungs-Unit, bitte um Tests

  Alt 30. Mai 2007, 14:12
Hallo, habe mir deine Unit angeschaut und meine langjährige Erfahrung sagt mir, dass du völlig auf dem Holzweg bist.
Grundsätzlich gilt:
Alle Datums- und Zeitwerte werden zuerst in das interne Format TDateTime umgewandelt.
Erst dann werden damit Berechnungen durchgeführt.
Mit Strings werden direkt keine Zeitberechnungen durchgeführt.

Wenn deine Zeitangaben > als 24 Stunden sind, dann muss man eben Tage hinzunehmen.
Du brauchst also nur 2 Funktionen:
1.) einen String (z.B. 50:30:00) nach TDateTime wandeln
2.) einen TDateTime-Wert in einen String wandeln (z.B. 4d 23:50:00 = 4Tage, 23 Std,50 Min)


die Funktion zu 1.) könnte so aussehen:
Delphi-Quellcode:
function StrToTimeSpan(timestring: string):TDateTime;
// diese Function parst einen String der Art '25:15:36'
// ohne 24 Stunden Grenze der Delphi-eigenen Routinen.
var
  sstd, smin, ssek: string;
begin
   sstd := StrToken(timestr, ':');
   smin := StrToken(timestr, ':');
   ssek := StrToken(timestr, ':');

   hour:= strtointDef(sstd, 0);
   minute:= strtointDef(smin, 0);
   sekunde:= strtointDef(ssek, 0);

   result := (((sekunde / 60.0) + minute) / 60.0 + hour) / 24.0;
end;
Delphi-Quellcode:
// kopiert aus der JCL
function StrToken(var S: string; Separator: Char): string;
var
  I: Integer;
begin
  I := Pos(Separator, S);
  if I <> 0 then
  begin
    Result := Copy(S, 1, I - 1);
    Delete(S, 1, I);
  end
  else
  begin
    Result := S;
    S := '';
  end;
end;
zu 2.) das bekommst du selbst hin.
Hinweis: du musst vorher nur die ganzen Tage abtrennen (function frac() und int()), dann kannst du TimeToStr verwenden.
Andreas
  Mit Zitat antworten Zitat
 


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 12:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz