AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zeitdifferenz berechnen (negativwert)

Zeitdifferenz berechnen (negativwert)

Ein Thema von StoRmtec · begonnen am 10. Jun 2011 · letzter Beitrag vom 11. Jun 2011
Antwort Antwort
Seite 1 von 2  1 2   
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#1

Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 20:10
Datenbank: SQL • Version: 2008 • Zugriff über: ADO
Hallo Leute

Habe eine Frage und zwar errechne ich eine Zeit was auch schon sehr gut geht aber ich komme einfach nicht weiter.
Würde gerne auch negativ Werte haben zB -00:03 min bekomme aber immer nur 00:03 egal ob minus oder plus. Wir kann ich das machen

Danke

Delphi-Quellcode:
 DB_AZ.Text := formatDatetime('hh:mm',strtotime(DB_AZende.Text)-strtotime(DB_AZbeginn.Text)-strtotime(DB_Pause.Text));
 DB_ZA.Text := formatDatetime('hh:mm',strtotime(DB_SOLL.text)-strtotime(DB_AZ.Text));
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 20:12
DB_ZA.Text := '-'+formatDatetime('hh:mm',strtotime(DB_SOLL.text)-strtotime(DB_AZ.Text)); ?
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#3

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 20:20
Danke für die Antwort aber er soll natürlich nur das - machen wenn er auch minus stunden hat.

danke
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.980 Beiträge
 
Delphi 12 Athens
 
#4

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 20:29
Delphi-Quellcode:
function FormatDateTimeSigned(const Format: string; DateTime: TDateTime): string;
begin
  result := SysUtils.FormatDateTime(Format, abs(DateTime));
  if DateTime < 0 then
    result := '-' + result;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 20:33
Wobei ich die Variable nicht DateTime nennen würde, es gibt schließlich eine gleichnamige Variable in den DateUtills
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#6

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 20:37
danke aber wie binde ich das ein
habe irgendwie gerade ein blackput glaube ich

danke
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 20:51
PS: Schau dir mal die Definition vom TDateTime an.

Der Nachkommateil ist die Uhrzeit.
> Uhrzeiten sind immer positiv
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#8

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 21:25
habe es jetzt so hinbekommen

Delphi-Quellcode:
 if StrToTime(DB_SOLL.Text) > StrToTime(DB_AZ.Text) then
begin
  x := StrToTime(DB_AZ.Text) - StrToTime(DB_SOLL.Text);
  DB_ZA.Text := '-' + TimeToStr(x);
end
else if StrToTime(DB_AZ.Text) < StrToTime(DB_SOLL.Text) then
begin
  x := StrToTime(DB_SOLL.Text) - StrToTime(DB_AZ.Text);
  DB_ZA.Text := TimeToStr(x);
nur habe ich noch ein Problem und zwar zeigt er mir die ausgabe in 00:00:00 an sollte aber 00:00 sein wie kann ich das umstellen noch

danke
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 21:51
nur habe ich noch ein Problem und zwar zeigt er mir die ausgabe in 00:00:00 an sollte aber 00:00 sein wie kann ich das umstellen noch
Dann schauen wir mal in die OH > Delphi-Referenz durchsuchenTimeToStr (hättest'e auch selber machen können)
und was sehen wir?

Ach, StrToTime und TimeToStr nutzen die Systemeinstellungen vom Windows.
PS: Anderes Land, bzw. andere Spracheinstellung und dein Programm macht eventuell nicht mehr, was es soll.

Lösungen:
> Die Systemeinstellung vom Windows/Benutzer verändern. (kommt nicht immer so gut an, wenn man einfach so daran rumschraubt)
> FormatSettings des Programms anpassen. (Achtung, das kann vom system auch mal wieder überschrieben werden)
> Den zweiten Parameter dieser Funktionen nutzen?
> Oder wieder die alternative Funktionen verwenden, wie z.B. Delphi-Referenz durchsuchenFormatDateTime.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
StoRmtec

Registriert seit: 6. Jan 2003
209 Beiträge
 
#10

AW: Zeitdifferenz berechnen (negativwert)

  Alt 10. Jun 2011, 22:16
aber das komische ist wenn ich einen positiven wert habe dann stimmt die zeit mit 00:00 beim negativen macht er dann -00:00:00 raus.

danke
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:29 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