Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Aus einem Datum eine Zeitdifferenz erstellen (https://www.delphipraxis.net/131361-aus-einem-datum-eine-zeitdifferenz-erstellen.html)

Chemiker 23. Mär 2009 22:30


Aus einem Datum eine Zeitdifferenz erstellen
 
Hallo,

ich gebe ein Datum ein und möchte gerne eine Zeitdifferenz daraus machen.

Eingabe: 10.02.2009

Ausgabe:
StartDatumZeit: 10.02.2009 00:00:00:00
EndDatumZeit :10.02.2009 23:59:59:59

Delphi-Quellcode:
DecodeDateTime(Temp3DateTime, jahr, Monat, Tag, stunde, minute, sekunde,
                              mSekunde);

DatTime.StartDatumZeit:= EncodeDateTime(jahr, Monat, Tag, 0, 0,0,0);
DatTime.EndDatumZeit:= EncodeDateTime(jahr, Monat, Tag, 23, 59,59,59);
Allerdings bekomme ich beim StartDatumZeit nur das Datum, wie kann man das ändern?

Bis bald Chemiker

DasZiesel 23. Mär 2009 23:02

Re: Aus einem Datum eine Zeitdifferenz erstellen
 
Hallo Chemiker,

irgendwie habe ich deine Frage nicht richtig verstanden... aber wenn du einer TDateTime Variable Datum und Zeit zuordnen möchtest kannst du es auch so versuchen

Delphi-Quellcode:
var
  Date1: TDatetime;
  Date2: TDatetime;
begin
  Date1 := EncodeDate(Year, Month, Day) + EncodeTime(0, 0, 0, 0);
  Date2 := EncodeDate(Year, Month, Day) + EncodeTime(23, 59, 59, 59);
end;

deep_thought 23. Mär 2009 23:26

Re: Aus einem Datum eine Zeitdifferenz erstellen
 
Hallo Chemiker,

wenn du ein "reines" Datum hast, bedeutet das, dass es sich um 0:00:00 Uhr des betreffenden Tages handelt - also genau das, was du bei StartdatumZeit haben willst ...
man müsste jetzt wissen _wo_ du nur das Datum bekommst ... also welche konvertierungsroutine denkt, Startdatumzeit sei ein TDate ...

mfg deep_thought

Chemiker 24. Mär 2009 06:42

Re: Aus einem Datum eine Zeitdifferenz erstellen
 
Hallo,

@DasZiesel:

Vielleicht wird es deutlicher, wenn Du die Werte von Date1 und Date2 in einem String umwandeltes und in einem Edit-Feld anzeigen lässt.

Delphi-Quellcode:
Edit1.Text:= DateTimeToStr(Date1); // z.B.: 10.02.2009
Edit2.Text:= DateTimeToStr(Date2); // z.B.: 10.02.2009 23:59:59
Bei Date1 wird die Zeit nicht mit angezeigt.

@deep_thought:

die 00:00:00 wird nicht angezeigt.

Bis bald Chemiker

DasZiesel 24. Mär 2009 08:25

Re: Aus einem Datum eine Zeitdifferenz erstellen
 
Achso du möchtest die Ausgabe formatieren, das erreichst du mit

Delphi-Quellcode:
DateTimeToString(DateStr, 'dd.mm.yyyy hh:nn:ss', Date1);
dort werden auch die Zeit angezeigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 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