![]() |
Differenz zwischen Zeit und Datum
Also, ich möchte ein Programm erstellen (für ein Browsergame =P), dass mir die Differenz zweier Daten liefert.
Also, einmal habe ich Beispielsweise den 01.01.2010 mit der Uhrzeit 01:00:00 und einmal habe ich sozusagen den 00.00.0000 mit der Uhrzeit 01:10:00. Ich will jetzt, dass der die 01:10:00 von dem ersten Datum abzieht, so, dass ich den 31.12.2009 mit der Uhrzeit 23:50 erhalte und das sollte natürlich mit jedem Datum und jeder Zeit funktionieren. Ich hab schon versucht, das ganze mit if und case of und solchem Zeugs zu lösen (if sekunden >= 60 then Sekunden := Sekunden mod 60; usw.), aber das ist so viel schreibarbeit und ich krieg das nicht hin ;-) Abgesehen davon gibt es garantiert eine einfacherer Lösung für dieses Problem =) Freue mich über jede Hilfe |
Re: Differenz zwischen Zeit und Datum
Die klassische Unit DateUtils hat eigentlich alles was du für Datum + Uhrzeit brauchst. Nebenbei ist ein TDateTime vom Datentyp Extended (Hilfe lesen), so dass du ganz leicht die Differenz zwischen 2 TDateTimes ermitteln kannst: d3 := d2 - d1
|
Re: Differenz zwischen Zeit und Datum
ist das hier das richtige?
![]() |
Re: Differenz zwischen Zeit und Datum
das funtkioniert nicht, so wie ich mir das vorgestellt habe... Ich will ja auch keine Zeitspanne berechnen...
|
Re: Differenz zwischen Zeit und Datum
Was sonst?
|
Re: Differenz zwischen Zeit und Datum
Ein Datum... gut, grundsätzlich könnte man es schon als Zeitspanne ansehen...
Wie kriege ich es hin, dass Delphi mir diese Zeitspanne in "dd.mm.yyyy hh.nn.ss" ausgibt? Ich hab hier im Forum glaub ich was von StrToDateTime gelesen, aber mein Turbo-Delphi sagt dazu nur "Nicht deklarierter Bezeichner"... |
Re: Differenz zwischen Zeit und Datum
Wie kann eine Differenz zwischen 2 Datumswerten eine Datum sein?
|
Re: Differenz zwischen Zeit und Datum
... hast du dir meinen ersten Post nicht durchgelesen ;-)? Ich habe gesagt "sozusagen"... Eigentlich habe ich nur 01:10:00. Und die will ich von einem Datum abziehen um damit ein anderes Datum zu erhalten.
Ich kann es gerne nochmal erklären. Ich habe ein Datum mit Zeit, nämlich in diesem Beispiel den 01.01.2009 01:00:00. Jetzt will ich, dass von diesem Datum die Zeit 01:10:00 abgezogen wird, sodass ich ein neues Datum 31.12.2008 erhalte. Ist meine Frage wirklich so schwer zu verstehen? |
Re: Differenz zwischen Zeit und Datum
Gegenfrage: ist die Antwort aus #2 so schwer zu verstehen?
|
Re: Differenz zwischen Zeit und Datum
ja für leute die noch nie mit sowas gearbeitet haben und deren Hilfe aus irgendeinem unerfindlichen Grund nicht funktioniert schon
|
Re: Differenz zwischen Zeit und Datum
Du willst von einem Datum eine gewisse Zeitspanne subtrahieren. Also musst Du doch nur errechnen, wieviele Tage das sind und vom Ursprungsdatum abziehen. Ein Stunde und 10 Minuten sind demnach 1/24 + 1/24/60 * 10.
|
Re: Differenz zwischen Zeit und Datum
Zitat:
![]() ![]() Zudem gibt es auch eine Onlinehilfe... ![]() |
Re: Differenz zwischen Zeit und Datum
Es gibt zwei (seltsamerweise kaum bekannte) Funktionen: Int() und Frac().
Int() liefert den ganzzahligen Anteil vor dem Komma und ist damit eng verwandt mit Trunc(). Der Unterschied zwischen Int() und Trunc() ist der Rückgabewert: Int() liefert Extended, während Trunc() ein Int64 zurück gibt. Frac() liefert den Nachkommaanteil. Jetzt muss man noch wissen, dass ein Tag = 24 Stunden dem Wert 1.0 im TDateTime-System entsprechen.
Delphi-Quellcode:
var
a, b, c : TDateTime; begin a := Now; // Aktuelles Datum + Uhrzeit b := Int(a); // nur das Datum ohne Uhrzeit bzw. Uhrzeit 0:00:00 c := Frac(a); // nur die Uhrzeit |
Re: Differenz zwischen Zeit und Datum
sx2008, das ist exakt das, was ich gesucht habe =) Danke... Gibt's hier irgendwo einen Danke-Knopf?^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz