Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Differenz 2erDatum in Tmemo

  Alt 1. Jun 2006, 19:06
Hallo.

Du hast einen dicken Fehler in deiner Rechnung:

Uhrzeit_Verbleib := Time - Uhrzeit_ende; Du rechnest hier mit TDateTime-Werten. Diese Werte geben den Zeitabstand zu einem Referenzdatum in Tagen an. Nur mit den Uhrzeitanteilen -- Time und UhrzeitEnde sind Werte kleiner 1 -- rechnest du effektiv mit einer Uhrzeit am 30. Dez 1899, was gewiss nicht dein Wunsch ist. Um den zeitlichen Abstand zwischen zwei Zeitpunkten zu bestimmen müssen unbedingt beide Zeitpunkte auf das gleiche Referenzdatum normiert sein.

Du darfst also nicht Time (0.75 = 18 Uhr), sondern musst Now (38869.75 = heute 18 Uhr) als Minuend verwenden. Aus gleichem Grund musst du beim Subtrahend (UhrzeitEnde) mit der Kombination von WeckDatum und WeckZeit rechnen (UhrzeitEnde := StrToDate(WeckDatum) + StrToTime(WeckTime) // nur zur Verdeutlichung). Bei der Differenz darfst du dann allerdings auch Werte größer als 1 erwarten, die dann einen Zeitraum angeben. Der Wert vor dem Komma repräsentiert die Tage, der Wert nach dem Komma den Bruchteil eines Tages. Bei der Darstellung von Zeiträumen Größer oder gleich 1 versagt TimeToStr(), aber du kannst statt dessen die Funktion DateTimeToStr2() verwenden.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat