Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zeitrechner funktioniert nicht wie er soll (https://www.delphipraxis.net/34333-zeitrechner-funktioniert-nicht-wie-er-soll.html)

Chucky_88 21. Nov 2004 12:22


Zeitrechner funktioniert nicht wie er soll
 
Hallo,
ich habe vor ein programm zu programmieren das eine eingabe braucht... Hier handelt es sich um Sekunden. Wenn ich dann 172800 Sek eingebe kommt als erstes eine Anzeige mit Stunden:Minuten:Sekunden. In dem Beispiel wären das 42 Stunden. DAnn gibt es daneben noch einen Button. Er soll bewirken dass die eingegebene zahl zu der Systemzeit dazu addiert wird und dann die Zeit berechnet wird wann das ist.
Das wären dann 2Tage + uhrzeit. Jedoch geht das mit der Uhrzeit irgendwie nicht :-/ fragt mich nicht wieso ... Es funtzt einfach nicht das die Systemzeit dazu addiert wird. Der rest klappt alles... Bitte helft mir:

Delphi-Quellcode:
procedure TUmrechner.BtEndzeitClick(Sender: TObject);
var
Eingabe, aStunden, aMinuten, aSekunden, gZeit, gTage, gStunden, gMinuten, gSekunden : Integer;
TimeStruct: TSystemTime;

begin
  if BtMin_zu_St.visible = false
  then begin
    Eingabe       := StrToInt (EdEingabe.Text);
    aStunden      := Eingabe div 3600;
    aMinuten      := (Eingabe - (aStunden * 3600)) div 60;
    aSekunden     := Eingabe - ((aStunden * 3600) + (aMinuten * 60));
    EdAusgabe.Text := (IntToStr (aStunden)) +' : ' +(IntToStr (aMinuten)) +' : ' +(IntToStr
    (aSekunden));

    gZeit    := (Eingabe + (TimeStruct.wHour * 3600) + (TimeStruct.wMinute * 60) + 
    (TimeStruct.wSecond));
    gTage    := gZeit div 86400;
    gStunden := (gZeit - (gTage * 86400)) div 3600;
    gMinuten := (gZeit - ((gTage * 86400) + (gStunden * 3600))) div 60;
    gSekunden := gZeit -  ((gTage * 86400) + (gStunden * 3600) + (gMinuten * 60));

    if gZeit  = 0
      then EdEndzeit.Text := IntToStr (gStunden) + ':' + IntToStr (gMinuten) + ':' + (IntToStr
      (gSekunden) + ' Uhr')
      else
      if gTage = 1
        then EdEndzeit.Text := ' Morgen um ' + IntToStr (gStunden) + ':' + IntToStr (gMinuten) + 
        ':' + IntToStr (gSekunden) + ' Uhr'
        else EdEndzeit.Text := ' In ' + IntToStr (gTage) + ' Tagen um ' + IntToStr (gStunden) + 
        ':' + IntToStr (gMinuten) + ':' + IntToStr (gSekunden) + ' Uhr'
  end;
end.
MfG Chucky

Jelly 21. Nov 2004 12:40

Re: Zeitrechner funktioniert nicht wie er soll
 
Aus deiner Beschreibung heraus versteht ich nicht ganz was du meinst? :gruebel:

Willst du aus einer Sekundenangabe (s) eine Ausgabe im Format "Tage hh:nn:ss" haben, oder was?

Gruß

Meflin 21. Nov 2004 12:46

Re: Zeitrechner funktioniert nicht wie er soll
 
btw: bitte verwende für quelltext die delphi tags!

Chucky_88 21. Nov 2004 12:53

Re: Zeitrechner funktioniert nicht wie er soll
 
was meintst du mit delphi tags ?

Also das Programm soll die eingegebene zeit zu der Systemzeit dazu addieren und dann die Uhrzeit ausgeben die entstanden ist. Aber irgendwie funktioniert das mit der Sstemzeit einlesen nicht wirklich ...

mirage228 21. Nov 2004 12:57

Re: Zeitrechner funktioniert nicht wie er soll
 
Zitat:

Zitat von Chucky_88
was meintst du mit delphi tags ?

Hi,

du musst Deinen Code in [delphi ] und [/delphi ] (ohne die Leerzeichen am Ende in den Klammern) einschließen :)

Die aktuelle Systemzeit kriegst du übrigens mit Delphi-Referenz durchsuchenNow. Beim Hinzuaddieren könnte Dir Delphi-Referenz durchsuchenDecodeDate bzw. Delphi-Referenz durchsuchenEncodeDate helfen.

mfG
mirage228

Jelly 21. Nov 2004 13:00

Re: Zeitrechner funktioniert nicht wie er soll
 
Zitat:

Zitat von Chucky_88
was meintst du mit delphi tags ?

Schreib deinen Delphi Code in die [*delphi]...[*/delphi] Tags (ohne *)

Zitat:

Zitat von Chucky_88
Aber irgendwie funktioniert das mit der Sstemzeit einlesen nicht wirklich ...

Warum liest du denn die Systemzeit so kompliziert aus... Einfacher gehts mit der Funktion now.

Kuck auch mal in der Online Hilfe. In Delphi sind etliche Funktionen dabei, um mit Zeitwerten zu rechnen. Insbesondere interessant für dich sind TDateTime und FormatDateTime.

Intern wird ein TDatetime Werte as Float gespeichert. 1 bedeutet 1 Tag. Alles was hinter dem Komma steht sind die Stunden, Minuten und Sekunden, im Dezimalformat. Um aus so einem Wert die Stunden, Minuten, Sekunden zu extrahieren, ist die Funktion DecodeTime gedacht...

@mirage228: Mist, zu langsam :wall: Ich sollt mal paar Dactylo Nachilfestunden nehmen :zwinker:

Chucky_88 21. Nov 2004 13:02

Re: Zeitrechner funktioniert nicht wie er soll
 
das mitm umrechnen is kein Problem ich muss nur den richtigen Befehl wissen womit ich die Systemzeit als Int in eine Variable schreiben kann..
Also Alle werte Einzelt ZB: Variable := Systtime.H
sowas in der art... sons müsste ich alles umschreiben ^^ und da ich noch sehr sehr unerfahren bin braucht des ne ganze Zeit bis des so alles funtzt ^^

Sharky 21. Nov 2004 13:05

Re: Zeitrechner funktioniert nicht wie er soll
 
Zitat:

Zitat von Chucky_88
...Also Alle werte Einzelt ZB: Variable := Systtime.H...

Hai Chucky_88,

schaue Dir mal Delphi-Referenz durchsuchenDecodeTime an. Ich denke das ist das was Du suchst.

Jelly 21. Nov 2004 13:06

Re: Zeitrechner funktioniert nicht wie er soll
 
@Chucky_88,
sag mal, hast du dir die Mühe gemacht nach den von mirage228 und mir angegebenen Stichwörtern in der Delphihilfe nachzuschlagen. Dein 33 Zeilen langer Code kriegst du auf weniger als 5 unter mit den vorhandenen Delphi Funktionen.

Sharky 21. Nov 2004 13:07

Re: Zeitrechner funktioniert nicht wie er soll
 
Zitat:

Zitat von Jelly
...von mirage228 und mir angegebenen Stichwörtern in der Delphihilfe nachzuschlagen.....

:wall: :wall: Die hatte ich eben auch übersehen. Da hätte ich mir mein Posting schenken können :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr.
Seite 1 von 2  1 2      

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