Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zeitdifferenz in Minuten berechnen (https://www.delphipraxis.net/125838-zeitdifferenz-minuten-berechnen.html)

invalid_operation 12. Dez 2008 19:01


Zeitdifferenz in Minuten berechnen
 
Zeitdifferenz in Minuten berechnen

Habe hier zwei Strings (sZeitVorher und sZeitNachher), die jeweils nur Uhrzeiten (kein Datum!) als string enthalten.

sZeitVorher = '23:34:45';
sZeitNachher = '12:23:34';

Wie bekomme ich raus, wieviele Minuten zwischen den beiden strings liegen?

sZeitNachher ist dabei *immer* neuer als sZeitVorher.

Negative Werte für die "Zeitdifferenz in Minuten" dürften/sollten hoffentlich nicht rauskommen.

Google-/DP-Suchtipps für mich?

DeddyH 12. Dez 2008 19:03

Re: Zeitdifferenz in Minuten berechnen
 
DateUtils.MinutesBetween, aber bei tagesübergreifenden Uhrzeiten könnte das noch Probleme geben.

Christian Seehase 12. Dez 2008 20:44

Re: Zeitdifferenz in Minuten berechnen
 
Moin Invalid_Operation,

leider fällt mir da keine Lösungshilfe ein, sondern nur eine Lösung:

Delphi-Quellcode:
var
  tiDiff  : Double;
  wdHour  : Word;
  wdMinute : Word;
  wdSecond : Word;
  wdMSec  : Word;

begin
  // Erst einmal die Zeitdifferenz berechnen
  tiDiff := StrToTime(edtNachher.Text)-StrToTime(edtVorher.Text);
  // Wenn der Wert negativ ist 24 Stunden aufaddieren.
  // Da die Vorkommastellen die Tage angeben muss 1 addiert werden.
  if tiDiff < 0 then tiDiff := tiDiff + 1;
  // und ausrechnen
  DecodeTime(tiDiff,wdHour,wdMinute,wdSecond,wdMSec);
  ShowMessage(IntToStr(wdHour*60+wdMinute));
end;

invalid_operation 13. Dez 2008 04:17

Re: Zeitdifferenz in Minuten berechnen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Naamd Christian Seehase,

Dein vorkonfektionierter Lösungsvorschlag ist mir auch ganz recht :thumb:

Hab' ihn mal durchprobiert, siehe Anlage :oops:

Tausend Dank dafür :cat: :dp: :love:

[edit=Sharky]Doppelten Anhang gelöscht. Mfg, Sharky[/edit]

alzaimar 13. Dez 2008 08:30

Re: Zeitdifferenz in Minuten berechnen
 
Wieso so komplizier?
Delphi-Quellcode:
Minutes := Trunc (0.5 + 1440* (DateTime2 - DateTime1));

invalid_operation 13. Dez 2008 08:59

Re: Zeitdifferenz in Minuten berechnen
 
Zitat:

Zitat von alzaimar
Wieso so komplizier?
Delphi-Quellcode:
Minutes := Trunc (0.5 + 1440* (DateTime2 - DateTime1));

Weil die Uhrzeiten nur als String (ohne Datum) vorhanden sind und daher die Minutenzeitdifferenz negative Werte ergeben könnte, was bei mir eben nicht sein darf.

Bin mit der Lösung von Christian sehr zufrieden, merke mir aber Deinen Lösungsansatz für später auftauchende Problem vor :thumb:

Vielen Dank @all!

Fussball-Robby 13. Dez 2008 09:29

Re: Zeitdifferenz in Minuten berechnen
 
Zitat:

Zitat von invalid_operation
und daher die Minutenzeitdifferenz negative Werte ergeben könnte, was bei mir eben nicht sein darf.

Du kannst doch mit Delphi-Referenz durchsuchenAbs() den absoluten Wert der Differenz ermitteln (immer positiv).

invalid_operation 13. Dez 2008 09:47

Re: Zeitdifferenz in Minuten berechnen
 
Zitat:

Zitat von Fussball-Robby
Zitat:

Zitat von invalid_operation
und daher die Minutenzeitdifferenz negative Werte ergeben könnte, was bei mir eben nicht sein darf.

Du kannst doch mit Delphi-Referenz durchsuchenAbs() den absoluten Wert der Differenz ermitteln (immer positiv).

Klar, logo, mach mal :-D

Da eine Stunde bekanntlich 100 Minuten hat, ist das sogar naheliegend!

@Sharky: Danke für das Weglöschen des doppelten Anhangs. Mach doch bitte noch zu hier :angel:

DeddyH 13. Dez 2008 10:07

Re: Zeitdifferenz in Minuten berechnen
 
So, damit ich nicht als Idiot dastehe, hier noch eine Lösung unter Verwendung von DateUtils:
Delphi-Quellcode:
function MinDiff(const sTime1, sTime2: string): Integer;
var Time1, Time2: TDateTime;
begin
  Time1 := Frac(StrToTime(sTime1));
  Time2 := Frac(StrToTime(sTime2));
  if CompareTime(Time1,Time2) > 0 then
    Time2 := IncDay(Time2);
  Result := MinutesBetween(Time1,Time2);
end;

invalid_operation 13. Dez 2008 10:23

Re: Zeitdifferenz in Minuten berechnen
 
Zitat:

Zitat von DeddyH
So, damit ich nicht als Idiot dastehe, hier noch eine Lösung unter Verwendung von DateUtils: (cut)

Sagt/meint wer?

Die schärfsten Kritiker der Elche
waren selber welche!

ZuhuHUHUhumachen oder in K&T verschieben!

LG
Ein Elch


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz