Autor Beitrag
bruce185
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

winXP
D7 Ent
BeitragVerfasst: So 06.09.09 12:36 
Hallo,
ich möchte die aktuelle Zeit - die angegebene Zeit von meinem Programm berechnen und die Minuten ausgeben.

z.B.
wenn es jetzt z.B. 12:00 Uhr ist und in meinem Programm 15:30 Uhr angegeben wurde, dann möchte ich berechnen, in wieviel Minuten wieder 12 Uhr ist u.s.w.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  Zeit1,Zeit2: TDateTime;
begin
  //Uhrzeit vom Textfeld in Zeit1 speichern
  Zeit1 := StrToTime(edtStunden.Text+':'+edtMinuten.Text);

  //Aktuelle Uhrzeit in Zeit2 speichern
  Zeit2 := Time;


Wie berechne ich das jetzt am einfachsten?

MfG
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 06.09.09 12:42 
Schau Dir einmal DateUtils.MinutesBetween an.
bruce185 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

winXP
D7 Ent
BeitragVerfasst: So 06.09.09 12:55 
Danke Dir.

Damit kann ich nur die Differenz zwischen den beiden Zeit werten berechnen.

z.B. ist es jetzt 12:00 Uhr und in meinem Programm angegeben 15:30 Uhr.
Ein Tag hat 24 Stunden, also wäre es in 1230 Minuten wieder 12 Uhr.

oder es ist jetzt 15:30 Uhr und in meinem Programm angegeben 12:00 Uhr, dann wäre es in 210 Minuten 15:30 Uhr u.s.w.

Danke schonmal.

MfG
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 06.09.09 13:00 
Ich versteht nicht ganz, welche Zeitdifferenz Du nun eigentlich ausgeben willst. Wozu brauchst Du die aktuelle Zeit? Ist das so gedacht, dass in Deinem Programm eine Uhrzeit angegeben wird und Du nun quasi einen "Minutencountdown" haben willst, der die Minuten bis zum Erreichen der angegebenen Uhrzeit ausgibt?
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 918
Erhaltene Danke: 158

Win 10
VS 2013, VS2015
BeitragVerfasst: So 06.09.09 13:03 
Ich verstehe immernoch nicht was du willst :nixweiss:

Zitat:
oder es ist jetzt 15:30 Uhr und in meinem Programm angegeben 12:00 Uhr, dann wäre es in 210 Minuten 15:30 Uhr u.s.w.

Aber wenn es jetzt 15:30 Uhr ist dann ist doch in 210 Minuten 19:00 Uhr ?
bruce185 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

winXP
D7 Ent
BeitragVerfasst: So 06.09.09 13:10 
user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Ich versteht nicht ganz, welche Zeitdifferenz Du nun eigentlich ausgeben willst. Wozu brauchst Du die aktuelle Zeit? Ist das so gedacht, dass in Deinem Programm eine Uhrzeit angegeben wird und Du nun quasi einen "Minutencountdown" haben willst, der die Minuten bis zum Erreichen der angegebenen Uhrzeit ausgibt?


Genau das habe ich vor, nur weiss ich jetzt nicht genau wie ich das am besten machen soll.

user profile iconjfheins hat folgendes geschrieben Zum zitierten Posting springen:
Ich verstehe immernoch nicht was du willst :nixweiss:

Zitat:
oder es ist jetzt 15:30 Uhr und in meinem Programm angegeben 12:00 Uhr, dann wäre es in 210 Minuten 15:30 Uhr u.s.w.

Aber wenn es jetzt 15:30 Uhr ist dann ist doch in 210 Minuten 19:00 Uhr ?


Da habe ich was falsch gesagt, sry, Du hast recht.

Danke schonmal.

MfG
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 06.09.09 13:18 
Hallo,

  1. Rechne die eingegebene Uhrzeit in ein TDateTime um
    Addiere den aktuellen Tag (nicht die Uhrzeit) zu deiner berechneten Zeit.
  2. Prüfe, ob die eingegebene Uhrzeit nach der aktuellen Zeit liegt; wenn nicht, addiere 1 Tag dazu
    1 Tag ist genau 1, wenn ich mich nicht irre.
  3. Berechne die Minuten zwischen den beiden TDateTimes
    Verwende MinutesBetween.

Das war's schon ;)

Grüße,
Yogu
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 06.09.09 13:21 
Genauso habe ich mir das auch gedacht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function MinutesLeft(aTime: TTime): Integer;
begin
  aTime := Trunc(Now) + Frac(aTime);
  if aTime < Now then
    aTime := IncDay(aTime);
  Result := MinutesBetween(Now,aTime);
end;
bruce185 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

winXP
D7 Ent
BeitragVerfasst: So 06.09.09 13:29 
Genau so habe ich das gemeint.

Vielen Dank für die Hilfe.

MfG