AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Zeitdifferenz "ordentlich" formatiert darstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitdifferenz "ordentlich" formatiert darstellen

Ein Thema von Alex_ITA01 · begonnen am 25. Okt 2004 · letzter Beitrag vom 10. Aug 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

Zeitdifferenz "ordentlich" formatiert darstellen

  Alt 25. Okt 2004, 16:04
Hi @all
ich hab da mal eine Frage zu dem TDateTime-Format.
Und zwar habe ich folgendes Problem:
Ich habe eine Zeitdifferenz (natürlich auch von zwei Zeiten) im Format TDateTime.
Nun möchte ich diese Zeit je nachdem ob sie größer als 59 Sekunden ist,59Minuten 23Stunden... usw. auswerten.
Viele sagen jetzt MinutesBetween,SecondsBetween usw. nur das hilft.
An einem Beispiel erklärt:
Die erste Zeit: 12:03:24 (hh:mm:ss
Die zweite Zeit: 14:27:54 (hh:mm:ss

Zeitdifferenz: 02:24:30 (hh:mm:ss) (ich hoffe ich habe richtig gerechnet )

Jetzt kann die Zeitdifferenz aber auch größer als Stunden sein...
Beispiel:
Zeit1: 12.03. 11:22:33 (dd.mm. hh:mm:ss)
Zeit2: 14.03. 12:33:44 (dd.mm. hh:mm:ss)

Zeitdifferenz: 02 01:11:11 (dd hh:mm:ss)
(Die Formatierung wie was aussieht erstmal ausgeschlossen...)

Wisst ihr wie ich das mache? Aus einer Zeitdifferenz zu analysieren wie groß der Unterschied ist (Sekunden,Minuten,Stunden,Tage...) und das dann dementsprechend darzustellen.

Ich hoffe ihr könnt mir da helfen
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
paresy

Registriert seit: 24. Aug 2004
Ort: Lübeck
105 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Zeitdifferenz "ordentlich" formatiert darstell

  Alt 25. Okt 2004, 16:18
Delphi-Quellcode:
procedure TfrmScriptEvents.tmrRunningTimer(Sender: TObject);
const sDay = 60 * 60 * 24;
      sHour = 60 * 60;
      sMin = 60;
var xSecs : Integer;
    xMins : Integer;
    xHours: Integer;
    xDays : Integer;
begin

  xSecs := Abs(SecondsBetween(Now, fNextRun));

  xDays := xSecs div sDay;
  xHours := (xSecs - xDays * sDay) div sHour;
  xMins := (xSecs - xDays * sDay - xHours * sHour) div sMin;
  xSecs := xSecs - xDays * sDay - xHours * sHour - xMins * sMin;

  if (xDays > 0) or (xHours > 0) or (xMins > 0) or (xSecs > 0) then
   lblNextRun.Caption := Format('%d + %.2d:%.2d:%.2d', [xDays, xHours, xMins, xSecs])
  else
   begin
    lblNextRun.Caption := 'Running';
    FormShow(Self); //update
   end;

end;
hier nen aussschnitt aus nem code den ich mal in nem projekt benutzt hatte... und nen coutdown anzuzeigen und wenn er die differenz <= 0 ist dann zeigt er "running" an.

paresy
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#3

Re: Zeitdifferenz "ordentlich" formatiert darstell

  Alt 26. Okt 2004, 10:15
danke für den source.
Ich wollte dich mal fragen @paresy, ob ich den code noch auf monate und jahre erweitern kann?

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.261 Beiträge
 
Delphi 12 Athens
 
#4

Re: Zeitdifferenz "ordentlich" formatiert darstell

  Alt 26. Okt 2004, 12:29
z.B.
Delphi-Quellcode:
If YearsBetween(Zeit1, Zeit2) <> 0 Then
  S := IntToStr(YearsBetween(Zeit1, Zeit2)) + ' Jahre'
Else If MonthsBetween(Zeit1, Zeit2) <> 0 Then
  S := IntToStr(MonthsBetween(Zeit1, Zeit2)) + ' Monate'
Else If WeeksBetween(Zeit1, Zeit2) <> 0 Then
  S := IntToStr(WeeksBetween(Zeit1, Zeit2)) + ' Wochen ' + IntToStr(Round(Abs(Zeit) - WeeksBetween(Zeit1, Zeit2) * 7)) + ' Tage'
Else If DaysBetween(Zeit1, Zeit2) <> 0 Then
  S := IntToStr(DaysBetween(Zeit1, Zeit2)) + ' Tage ' + TimeToStr(Abs(Zeit) - DaysBetween(Zeit1, Zeit2))
Else
  S := TimeToStr(Abs(Zeit1 - Zeit2));
Bei Monaten und Jahren ist es ein bissl schwerer genauere Angaben, zu den kleineren Einteilungen zu machen, da 1 Jahr/1 Monat nunmal keine feste Anzahl an Tagen/Stunden... hat.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#5

Re: Zeitdifferenz "ordentlich" formatiert darstell

  Alt 26. Okt 2004, 12:34
danke himitsu...
ich konnte mir schon denken das es problematisch wird weil Monat und Jahr wie du schon sagtest, nicht immer die gleiche Anzahl von Tagen haben.
Aber trotzdem danke
MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#6

Re: Zeitdifferenz "ordentlich" formatiert darstell

  Alt 26. Okt 2004, 12:42
@himitsu:
die Variable zeit, welche muss das sein? Zeit1 oder Zeit2?

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
CJ_lux

Registriert seit: 10. Aug 2008
22 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Zeitdifferenz "ordentlich" formatiert darstell

  Alt 10. Aug 2008, 13:43
Zitat von Alex_ITA01:
folgendes Problem:
Ich habe eine Zeitdifferenz (natürlich auch von zwei Zeiten) im Format TDateTime.

An einem Beispiel erklärt:
Die erste Zeit: 12:03:24 (hh:mm:ss
Die zweite Zeit: 14:27:54 (hh:mm:ss

Zeitdifferenz: 02:24:30 (hh:mm:ss)

hallo, ehm könnte mier bitte einer erklären wie er das hin bekommen hat solch eine zeitdifferenz?
ich bekomme nur folgendes hin...

z.B.:

Zeit1 : 14:00:00
Zeit2 : 15:00:00
Differenz : 23:00:00
ist Schule wirklich effektiver als sich es selbst bei zu bringen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Zeitdifferenz "ordentlich" formatiert darstell

  Alt 10. Aug 2008, 13:53
Wie ermittelst Du denn die Differenz?
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
10. Aug 2008, 13:54
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Zeitdifferenz "ordentlich" formatiert darstell

  Alt 10. Aug 2008, 13:59
Zitat:
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage
[OT] Nach fast 4 Jahren schon bemerkt? [/OT]
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
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 23:34 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