![]() |
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:
MfG Chucky
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. |
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ß |
Re: Zeitrechner funktioniert nicht wie er soll
btw: bitte verwende für quelltext die delphi tags!
|
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 ... |
Re: Zeitrechner funktioniert nicht wie er soll
Zitat:
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 ![]() ![]() ![]() mfG mirage228 |
Re: Zeitrechner funktioniert nicht wie er soll
Zitat:
Zitat:
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: |
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 ^^ |
Re: Zeitrechner funktioniert nicht wie er soll
Zitat:
schaue Dir mal ![]() |
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. |
Re: Zeitrechner funktioniert nicht wie er soll
Zitat:
|
Re: Zeitrechner funktioniert nicht wie er soll
wenn du mir sagst wo ich die onlinehilfe finde ...
|
Re: Zeitrechner funktioniert nicht wie er soll
Zitat:
|
Re: Zeitrechner funktioniert nicht wie er soll
Zitat:
|
Re: Zeitrechner funktioniert nicht wie er soll
ahhhhh da
|
Re: Zeitrechner funktioniert nicht wie er soll
Super es läuft nun FETTES MERCI an alle !!!
Thx bye =) |
Re: Zeitrechner funktioniert nicht wie er soll
Zitat:
|
Re: Zeitrechner funktioniert nicht wie er soll
Delphi-Quellcode:
Procedure TUmrechner.BtEndzeitClick(Sender: TObject);
var Eingabe, gZeit, gStunden, gMinuten, gSekunden : Integer; sysStunden, sysMinuten, sysSekunden, sysMsekunden: word; Aktuell : TDateTime; begin if BtSek_zu_St.visible = true 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)); Aktuell := Now; DecodeTime(aktuell, sysStunden, sysMinuten, sysSekunden, sysMsekunden); gZeit := (Eingabe + (sysStunden * 3600) + (sysMinuten * 60) + (sysSekunden)); 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'; |
Re: Zeitrechner funktioniert nicht wie er soll
Jedoch hab ich wieder ein Neues Problem:
Das mit dem zeit ausrechnen ist nun OK, jedoch möchte ich einen Countdown darunter. Das ist in einen Counter geschrieben. Er steht standartmäßig auf enabled := false; Er wird durch einen Button aktiviert und läuft jede Sekunde durch:
Delphi-Quellcode:
procedure TUmrechner.TiCounterTimer(Sender: TObject);
var cTage, cStunden, cMinuten, CSekunden : Integer; begin cTage := gTage; // Das ist aus anderen vorherigen Funktionen übernommen cStunden := aStunden; // Die Werte dürfen halt nur im Counter geändert werden. cMinuten := aMinuten; // Dafür die doppelten Variablen. cSekunden := aSekunden; If (cSekunden > 0) then cSekunden := cSekunden -1; If (cSekunden = 0) then if (cMinuten > 0) then begin cMinuten := cMinuten -1; cSekunden := 59; end else if (cStunden > 0) then begin cStunden := cStunden -1; cMinuten := 59; end else if (cTage > 0) then begin cTage := cTage -1; cStunden := 23; cMinuten := 59; end else if (cSekunden = 0) and (cMinuten = 0) and (cStunden = 0) and (cTage = 0) then TiCounter.Enabled := false; EdCounter.Text := IntToStr(cTage) +':' +IntToStr(cStunden) +':' +IntToStr(cMinuten) +':' +IntToStr(cSekunden); end; Das Problem dabei ist: Der counter läuft nicht weiter. Er Zeigt den Grundwert an aber nichts danach ... Ich weiß nicht was daran falsch ist. Der Timer soll bei jedem durchgang eine Sekunde runter rechnen. Halt ein Countdown mit Tagen - Stunden - Minuten und Sekunden. Bitte helft mir ... Mfg Chucky |
Re: Zeitrechner funktioniert nicht wie er soll
Zitat:
|
Re: Zeitrechner funktioniert nicht wie er soll
ahsooo ok
Ich habe die Variablen jetzt einfach in das Forumular eingesetzt. Also als Formular Variablen und dann wenn der Counter durch den Button gestartet wird, werden die variablen gesetzt. OK Frage beantwortet und es funtzt :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 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