Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Seltsames Datum im DateTimePicker (https://www.delphipraxis.net/144078-seltsames-datum-im-datetimepicker.html)

Mariaki 29. Nov 2009 15:48


Seltsames Datum im DateTimePicker
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich hab da son kleines Problem. Ich habe einen kleinen Wecker programmiert. Die Zeit wird durch 2 DateTimePicker bestimt (je einen für Zeit und Datum).
Nun setzte ich bein erstellen der Form die Picker auf die aktuelle Zeit:
Delphi-Quellcode:
  DtpTime.Time := Time;
  DtpDate.Date := Time;
Soweit so gut.. alles funktioniert. Nur so ein kleines Markel ist das das Jahr auf 1899 nicht auf 2009. Nun denkt mein Programm permanennt, dass 2009 1899 ist. Auch wenn ich dann wecken lasse, muss das jahr auf 1899 stehen!
Jetzt könnte man meinen, dass die Zeit falsch eingestellt ist. Bei mir wird aber die normale Zeit angezeigt, außerdem hat mien Freund getestet und auch bei ihm war das gleiche.
Nun frag ich mich woran das liegen könnte und wie man das ändern kann.

Gruß Mariaki

DeddyH 29. Nov 2009 15:54

Re: Seltsames Datum im DateTimePicker
 
Delphi-Quellcode:
DtpDate.Date := Date;

Mariaki 29. Nov 2009 15:57

Re: Seltsames Datum im DateTimePicker
 
oh.. hätte man auch selbst drauf kommen können :wall:
Naja.. das kommt davon wenn man ein programm um 1 Uhr und später programmiert..
Trotzdem thx

himitsu 29. Nov 2009 16:01

Re: Seltsames Datum im DateTimePicker
 
.Date und .Time sind im Printip das Selbe, da es intern als Eines gespeichert und beim Auslesen oftmals nicht getrennt wird.

es kann also nicht schaden, wenn du beim Auslesen sicherheitshalber nochmal filterst:
Delphi-Quellcode:
time = Frac(dtpTime.Time);
date = Trunc(dtpDate.Date);

hier wird nur typ-kontertiert, aber nicht der Inhalt umgewandelt.
Delphi-Quellcode:
function TCommonCalendar.GetDate: TDate;
begin
  Result := TDate(FDateTime);
end;

function TCommonCalendar.GetTime: TTime;
begin
  Result := TTime(FDateTime);
end;


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