![]() |
Uhrzeiten rechnen - Format
Ich möchte gerne einen Arbeitszeiten-Rechner bauen.
Dazu ist folgendes gegeben: Edit-Feld "Arbeitsbeginn" Edit-Feld "Arbeitsende" Edit-Feld "Gesamtstunden" Das Format sollte so aussehen: 07:30 Ich habe schon folgendes:
Delphi-Quellcode:
Mir macht halt das Format der Uhrzeit Probleme.
procedure Tzeiten.SpeedButton1Click(Sender: TObject);
var zeitunterschied, zeit1, zeit2 : TTime; begin zeit1 := StrToTime (edt_beginn_1.Text); zeit2 := StrToTime (edt_beginn_2.Text); zeitunterschied := zeit2 - zeit1; edt_std_gesamt.Text := TimeToStr (zeitunterschied); end; Wie kann ich das festlegen? |
Re: Uhrzeiten rechnen - Format
Probier mal:
Delphi-Quellcode:
CEdit3.Text := FormatDateTime('hh:mm',StrtoTime(Edit2.Text)-StrtoTime(Edit1.Text));
|
Re: Uhrzeiten rechnen - Format
Hey, klasse.
Danke. |
Re: Uhrzeiten rechnen - Format
Ich würde das trotzdem nicht so machen:
Nimm besser zwei DateTimePicker, die du auf Zeiteingabe stellst. (Format einstellen). Dann erstellst du dir eine Variable vom Typ TDateTime (entspricht extended) und weist der den Wert DateTimePicker1.Time - DateTimePicker2.Time zu. Jetzt kannst du noch dafür sorgen, dass der Wert nicht negativ ist, damit es egal ist, wo du den Arbeitsbeginn und das Arbeitsende eingibst. Das Ergebnis kann anschließend so ausgegeben werden:
Delphi-Quellcode:
MfG.
Label1.Caption := FormatDateTime('hh:nn',differenz);
|
Re: Uhrzeiten rechnen - Format
Und worin liegt jetzt der Unterschied?
Vielleicht erlaubt er ja nur bestimmte Eingaben im Edit und ist somit sicher, dass bei der Umwandlung auch gültige Datumsformate verwendet werden?! |
Re: Uhrzeiten rechnen - Format
Erstmal:
Danke für deinen Tip "daniel-volk". Aber "Tpercon" hat recht, ich überprüfe natürlich ob die Eingaben im richtigen Format geschehen sind. Thx @ all |
Re: Uhrzeiten rechnen - Format
Ich habe nochmal ein Problem mit den Uhrzeiten:
Delphi-Quellcode:
Irgendwas stimmt mit dem try ... except - Block nicht.
if trim(edt_time.Text) = '' then
begin showmessage('Uhrzeit ist eingabepflichtig!'); PageControl1.TabIndex := 1; edt_time.SetFocus; ModalResult := 0; exit; end else begin Try D := StrToTime(edt_time.Text); Except on e:Exception do begin ShowMessage(e.Message); PageControl1.TabIndex := 1; edt_time.SetFocus; ModalResult := 0; exit; end; end; end; Kann mir bitte wer helfen? |
Re: Uhrzeiten rechnen - Format
Moin Micha,
was geht denn damit nicht so wie gewünscht. |
Re: Uhrzeiten rechnen - Format
Er bricht sofort das Programm ab, wenn ich eine falsche Zeitangabe z. B. 07.30 mache.
Normalerweise müsste doch mit eine tryExcept eine Fehlermeldung innerhalb des Programmes erscheinen oder? |
Re: Uhrzeiten rechnen - Format
Moin Micha,
also bei mir funktioniert Dein Code einwandfrei (ich hab' nur mal das PageControl weggelassen). Du solltest in der IDE mal schauen ob folgende Checkbox markiert ist: Tools\Debugger Optionen\Sprach-Exceptions CheckBox: Bei Delphi-Exceptions stoppen wenn ja, werden Exceptions in der IDE auch angezeigt, wenn man try/except benutzt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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