Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zeitumrechnung (https://www.delphipraxis.net/131573-zeitumrechnung.html)

aramintaros 26. Mär 2009 21:07


Zeitumrechnung
 
einen wunderschönen hallo zusammen :-D

ich hoffe, daß ich hier richtig bin, habe nämlich ein kleines problem daß ich mit meinem bescheidenen wissen nicht zu lösen vermag.
es geht um die umrechnung einer uhrzeit ohne sekunden,

bei 4 spinedits, sind die ersten beiden dazu da um die stunde und die minute eingestellt zu bekommem.

wenn ich spinedit1.value = 12, und spinedit2.value =60 habe dann will ich
das mir spinedit3.value = 13, und spinedit4.value =00 angezeit wird, und daß spinedit4 ganz normal bei 0 weiterzählt.

ich habe es mit folgendem ansatz probiert, komme aber nicht weiter. :pale:

Delphi-Quellcode:
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
  Present:= Now;
  SysUtils.DecodeTime(Present, Hour, Min, Sec, MSec);
  MyHour:= Hour + SpinEdit1.Value;
  MyMin:= Min + SpinEdit2.Value;

  if MyHour < 10 then Edit2.Text:= '0' + IntToStr(MyHour) + ':' else Edit2.Text:= IntToStr(MyHour) + ':';
  if Mymin < 10 then Edit2.Text:= Edit2.Text + '0' + IntToStr(MyMin) else Edit2.Text:= Edit2.Text + IntToStr(MyMin);
end;

procedure TForm1.SpinEdit2Change(Sender: TObject);
begin
  Present:= Now;
  SysUtils.DecodeTime(Present, Hour, Min, Sec, MSec);
  MyHour:= Hour + SpinEdit1.Value;
  MyMin:= Min + SpinEdit2.Value;

  if MyMin > 60 then
  begin
    inc(Hour);
    SpinEdit3.Value := Hour;
    SpinEdit4.Value := Min;
  end;

  if MyHour < 10 then Edit2.Text:= '0' + IntToStr(MyHour) + ':' else Edit2.Text:= IntToStr(MyHour) + ':';
  if Mymin < 10 then Edit2.Text:= Edit2.Text + '0' + IntToStr(MyMin) else Edit2.Text:= Edit2.Text + IntToStr(MyMin);
end;
kann mir bitte jemand helfen? mit meinen zeit-datums-umrechnungskünsten komme ich einfach nicht weiter.

erstmal danke und gruß
ara

SimStar001 27. Mär 2009 20:07

Re: Zeitumrechnung
 
guck mal in die Delphi Hilfe, da gibst so Funktionen wie

Delphi-Quellcode:
incMinute(); //oder
incHour(); //usw.
damit sind dann deine Problem gelöst!


Bsp.:
Delphi-Quellcode:
Zeit := Now;
decoedetime(Zeit,Hour,Minute,Sekunde,mSekunde);

incMinute(Minute,Spineditxyz.value);
incHour(Hour,Spineditxyz.value);

encodetime()....

Panthrax 27. Mär 2009 20:37

Re: Zeitumrechnung
 
Oder sieh Dir die Operatoren Modulo und Div an:

z.B. zur Stunde addieren, die Minuten auf 0..59 eingrenzen:
Delphi-Quellcode:
Stunde:=Stunde + (Minute div 60);
Minute:=Minute mod 60;
ggf. die Stunden auf 0..23 eingrenzen:
Delphi-Quellcode:
Stunde:=Stunde mod 24;

Blackheart 27. Mär 2009 21:14

Re: Zeitumrechnung
 
@ Panthrax
Bitte gib doch das nächste mal den Crosspost mit an.

Panthrax 27. Mär 2009 21:53

Re: Zeitumrechnung
 
Zitat:

Zitat von Blackheart
@ Panthrax
Bitte gib doch nächstens das Doppel mit an.

Code:
[Delphi-Forum.de].Aramintaros = [Delphipraxis.net].Aramintaros
[Delphipraxis.net].Panthrax <> [Delphipraxis.net].Aramintaros

aramintaros 29. Mär 2009 18:55

Re: Zeitumrechnung
 
Ich bedanke mich an alle, die mir behilflich waren.
Das Problem ist mit eurer Hilfe nun gelöst. :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 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