AGB  ·  Datenschutz  ·  Impressum  







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

Zeit addieren

Ein Thema von TimmA · begonnen am 18. Jan 2004 · letzter Beitrag vom 18. Jan 2004
Antwort Antwort
TimmA

Registriert seit: 22. Mai 2003
Ort: Giessen
111 Beiträge
 
Delphi 7 Professional
 
#1

Zeit addieren

  Alt 18. Jan 2004, 03:00
Hi,

habe mal wieder ein Problem

und zwar möchte ich beliebig viele Zeiten addieren können nur ich bekomme das nicht hin
kleines Beispiel :

x dauert 1 Stunden 43 Minuten und 32 Sekunden -> im Format 01:43:32
y dauert 4 Stunden 32 Minuten und 29 Sekunden -> im Format 04:32:29
z dauert 5 Stunden 54 Minuten und 12 Sekunden -> im Format 05:54:12

und daraus dann die Insgesamtdauer das habe ich schon mit DateTimePicker hinbekommen nur wenn das Ergebnis dann über 23 Stunden ist fängt es ja wieder bei 00 an aber ich will das der weitergeht oder eine andere lösung möchte die verschiedenen Zeiten einfach nur zusammenzählen können ... gib da doch bestimmt bessere u einfachere Lösungen oder ?




gruß TimmA.
<< guckt mal da ein noob
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

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

Re: Zeit addieren

  Alt 18. Jan 2004, 08:06
Hai TimmA,

hier mal eine Idee. Ist aber nicht getestet *gg*

Delphi-Quellcode:
var
  aZeiten: array[1..10] of tTime; //Array mit den Zeiten
  iTage, // Summe Tage
  iStunden, // Summe Stunden
  iMinuten, // Summe Minuten
  iSekunden: Integer; //Summe Sekunden

procedure TForm1.Button1Click(Sender: TObject);
var
  ndx: Integer;
  Hour, Min, Sec, MSec: Word; // Temp Variablen
begin
  iTage := 0;
  iStunden := 0;
  iMinuten := 0;
  iSekunden := 0;
  for ndx := Low(aZeiten) to High(aZeiten) do
    begin
      DecodeTime(aZeiten[ndx], Hour, Min, Sec, MSec);
      // Die Einzelnen Zeilteile addieren;
      iStunden := iStunden + Hour;
      iMinuten := iMinuten + Min;
      iSekunden := iSekunden + Sec;
    end;
  iMinuten := iMinuten + (iSekunden div 60);
  iSekunden := iSekunden mod 60;
  iStunden := iStunden + (iMinuten div 60);
  iMinuten := iMinuten mod 60;
  iTage := iStunden div 24;
  iStunden := iStunden mod 24;
end;
In diesem Demo müssen die Zeiten als tTime in dem Array gespeichert sein.
Dann addiere ich ersteinmal alle Stunden,Minuten und Sekunden. (For-Schleife)
Im letzen Teil werden die Überlaufe berücksichtigt.

z.B.: 123 sekunden sind 2 Minuten und 3 Sekunden. Die Minuten werden also um 2 erhöht und die sekunden auf 3 gesetzt.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
TimmA

Registriert seit: 22. Mai 2003
Ort: Giessen
111 Beiträge
 
Delphi 7 Professional
 
#3

Re: Zeit addieren

  Alt 18. Jan 2004, 13:12
Hi,


danke schonmal !

Ich werden das jetzt gleich mal ausprobieren
<< guckt mal da ein noob
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#4

Re: Zeit addieren

  Alt 18. Jan 2004, 14:07
das sollte einfacher gehen, da TDateTime Zeiten in der Form: TageSeitStartDatum.MillisekSeitMitternacht speichert:

Delphi-Quellcode:
type
  TimeRec = Record
    Stunden : Integer;
    Minuten : Integer;
    Sekunden : Integer;
    Millisek : Integer;
  end;

function AddTimes(Zeiten : Array of TTime) : TimeRec;
var TempTime : TDateTime;
    Hour,
    Min,
    Sec,
    MSec : Word;
    i : Integer;
begin
  TempTime := 0.0;
  for i := Low(Zeiten) to High(Zeiten) do TempTime := TempTime+Zeiten[i];
  DecodeTime(TempTime,Hour,Min,Sec,MSec);
  Result.Stunden := Trunc(TempTime)*24+Hour; //
  Result.Minuten := Min;
  Result.Sekunden := Sec;
  Result.Millisek := MSec;
end;
Du übergibst einfach ein Array von TTime-werten und bekommst das Ergebnis in der Form des TimRec-Rekords.
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Antwort Antwort


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 22: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