![]() |
Re: Datum berechnen
Hi,
danke, dass hat bis jetz prima funktioniert, nur ein Problem hätt ich noch, wenn ich jetz noch eine Uhrzeit dazu angeben möchte (StrToDate(//zb.// 11.20 11.07.2008) wie mache ich das? Vielen Danke, auch für die Antworten davor! :) BAsti |
Re: Datum berechnen
Hi,
experimentiere mal mit StrToDateTime(DateTimeToStr(Now)). Freundliche Grüße |
Re: Datum berechnen
Zitat:
Delphi-Quellcode:
:gruebel: Das is ja wohl keine richtige Zeitangabe, obwohl ich vermute, dass das nur an der Zeit liegen kann
procedure TForm1.Timer1Timer(Sender: TObject);
begin Zeit1 := Now() - StrToDateTime('5.5.05 5:55'); label1.Caption := FloatToStr(Zeit1); end; @ oben: was bringt mir das direkte umwandeln von now? |
Re: Datum berechnen
Hallo Sebastian,
Zitat:
Zitat:
![]()
Delphi-Quellcode:
Gute Nacht
procedure TForm1.Timer1Timer(Sender: TObject);
begin Zeit1 := Now() - StrToDateTime('5.5.05 5:55'); //label1.Caption := FloatToStr(Zeit1); Label1.Caption := DateTimeToStr2(Zeit1, 'd '); end; |
Re: Datum berechnen
Ja!, jetzt zeigt er auch die Zeit an, nur leider irgendsoein Datum um 19.00 :gruebel:
Liegt das am Anfangsjahr von 'Delphi' (1800 irgendwas) ? Danke! BAsti552 |
Re: Datum berechnen
Ja, daran liegt das.
DateTimeToStr() und die anderen Konvertierungsroutinen von Delphi gehen immer davon aus, dass der übergebene Wert ein bestimmter relativer Zeitpunkt ist. Wenn du aber zwei Zeitpunkte voneinander abziehst, was wegen des internen Formats DOUBLE wunderbar funktioniert, dann ist das Ergebnis eine Mengenangabe mit der Einheit "Tag". Wenn der Abstand der beiden voneinander subtrahierten Zeitangaben z.B. genau 48 Stunden ist, dann ist das Ergebnis 2.0 - übergeben an DateTimeToStr(2.0) erhältst du dann "01.01.1900 00:00:00". Weil du die Tage eines Zeitabstand (einer Zeitmenge, eines Zeitintervalls) nicht als Datum interpretieren darfst, hatte ich dir die Funktion DateTimeToStr2() nahegelegt. Die Hintergründe dazu stehen in dem verlinkten Thread. Das Refernzdatum ist der Beginn (0 Uhr) des 30.12.1899, was du durch DateTimeToStr(0) leicht feststellen kannst. Im Beitrag #6 hatte ich Sylvester 1899 angegeben, was falsch ist - ich hatte aus Versehen bei DateDelta nachgeschaut. In meiner Delphi Online-Hilfe wird bei TDateTime der Referenzzeitpunkt als 30.12.1899 12:00 Uhr angegeben, was auch falsch ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:07 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