Autor |
Beitrag |
bruce185
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: 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.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var Zeit1,Zeit2: TDateTime; begin Zeit1 := StrToTime(edtStunden.Text+':'+edtMinuten.Text);
Zeit2 := Time; |
Wie berechne ich das jetzt am einfachsten?
MfG
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 06.09.09 12:42
Schau Dir einmal DateUtils.MinutesBetween an.
|
|
bruce185 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: 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
|
Verfasst: 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
      
Beiträge: 918
Erhaltene Danke: 158
Win 10
VS 2013, VS2015
|
Verfasst: So 06.09.09 13:03
Ich verstehe immernoch nicht was du willst
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 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: So 06.09.09 13:10
DeddyH hat folgendes geschrieben : | 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.
jfheins hat folgendes geschrieben : | Ich verstehe immernoch nicht was du willst
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
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: So 06.09.09 13:18
Hallo,
- Rechne die eingegebene Uhrzeit in ein TDateTime um
Addiere den aktuellen Tag (nicht die Uhrzeit) zu deiner berechneten Zeit.
- 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.
- Berechne die Minuten zwischen den beiden TDateTimes
Verwende MinutesBetween.
Das war's schon
Grüße,
Yogu
|
|
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 06.09.09 13:21
Genauso habe ich mir das auch gedacht:
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 
      
Beiträge: 283
winXP
D7 Ent
|
Verfasst: So 06.09.09 13:29
Genau so habe ich das gemeint.
Vielen Dank für die Hilfe.
MfG
|
|