AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitdifferenz in Minuten berechnen

Ein Thema von invalid_operation · begonnen am 12. Dez 2008 · letzter Beitrag vom 13. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
invalid_operation
(Gast)

n/a Beiträge
 
#1

Zeitdifferenz in Minuten berechnen

  Alt 12. Dez 2008, 20:01
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: Zeitdifferenz in Minuten berechnen

  Alt 12. Dez 2008, 20:03
DateUtils.MinutesBetween, aber bei tagesübergreifenden Uhrzeiten könnte das noch Probleme geben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Zeitdifferenz in Minuten berechnen

  Alt 12. Dez 2008, 21:44
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
invalid_operation
(Gast)

n/a Beiträge
 
#4

Re: Zeitdifferenz in Minuten berechnen

  Alt 13. Dez 2008, 05:17
Naamd Christian Seehase,

Dein vorkonfektionierter Lösungsvorschlag ist mir auch ganz recht

Hab' ihn mal durchprobiert, siehe Anlage

Tausend Dank dafür

[edit=Sharky]Doppelten Anhang gelöscht. Mfg, Sharky[/edit]
Angehängte Dateien
Dateityp: zip minutendifferenz_765.zip (202,6 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Zeitdifferenz in Minuten berechnen

  Alt 13. Dez 2008, 09:30
Wieso so komplizier?
Minutes := Trunc (0.5 + 1440* (DateTime2 - DateTime1));
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
invalid_operation
(Gast)

n/a Beiträge
 
#6

Re: Zeitdifferenz in Minuten berechnen

  Alt 13. Dez 2008, 09:59
Zitat von alzaimar:
Wieso so komplizier?
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

Vielen Dank @all!
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Zeitdifferenz in Minuten berechnen

  Alt 13. Dez 2008, 10:29
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).
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
invalid_operation
(Gast)

n/a Beiträge
 
#8

Re: Zeitdifferenz in Minuten berechnen

  Alt 13. Dez 2008, 10:47
Zitat von Fussball-Robby:
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

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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: Zeitdifferenz in Minuten berechnen

  Alt 13. Dez 2008, 11:07
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;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
invalid_operation
(Gast)

n/a Beiträge
 
#10

Re: Zeitdifferenz in Minuten berechnen

  Alt 13. Dez 2008, 11:23
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.
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