![]() |
Checken ob ein String wie TDate ist
Hi,
ich versuche momentan einen TerminKalender zu erstellen (einen einfachen). Ich habe ein Stringgrid in dem ich 3 Spalten habe für Datum, Uhrzeit und die Meldung. Wenn nun diese Daten gespeichert werden, möchte ich, dass überprüft wird ob die Strings in der Datumsreihe ein Datum sind und die Strings in den Uhrzeitspalten auch einer Uhrzeit entsprechen. Ein zweites Problem, dass ich habe, ist, dass ich nicht genau weiß, wie ich abfragen kann ob ein Datum, bzw. eine Uhrzeit schon "vorbei" ist. Also ob der 07.06.2006 schon war, ist oder kommt, gemessen an der Systemuhr. MfG Daether |
Re: Checken ob ein String wie TDate ist
tryStrToDate()
|
Re: Checken ob ein String wie TDate ist
Zitat:
Delphi-Quellcode:
var Zeit, Datum: String;
{...} //Datum: if StrToDate(Datum) = Date then ShowMessage('Heute!') else if StrToDate(Datum) < Date then ShowMessage('Schon vorbei!') else ShowMessage('Kommt noch!'); //Zeit: if StrToTime(Zeit) = GetTime then ShowMessage('Jetzt!') else if StrToTime(Zeit) < GetTime then ShowMessage('Schon vorbei!') else ShowMessage('Kommt noch!'); //Edit: Code verbessert! Dann klappt's auch mit dem aktuellen Tag! //Edit2: Code vervollständigt mit Datum und Zeit! |
Re: Checken ob ein String wie TDate ist
hi nochmal
das Prinzip verstehe ich dahinter nur verstehe ich nicht ganz wie ich GetTime erzeuge, bzw. deklariere. Edit: Date hat sich erledigt, das war einfach, nur verstehe ich weiterhin nicht wie ich das mit GetTime mache. |
Re: Checken ob ein String wie TDate ist
GetTime? Zum ermitteln der aktuellen Zeit gibt es die Funktion "Time()" und zum ermitteln des Datums die Funktion "Date()".
Im übrigen sollte man 2 Datumswerte nicht mit "=" vergleichen weil Datumswerte Float-Werte sind und da kann es durchaus passieren das die Floatwerte verschieden sind aber trotzdem das gleiche Datum darstellen. |
Re: Checken ob ein String wie TDate ist
Ob man Time oder GetTime für die aktuelle Uhrzeit verwendet, ist eigentlich egal.
Ich habe mich nur für GetTime entschieden, weil: Zitat:
Zitat:
Ich dachte, gleiches Datum = gleicher Float-Wert. Aber wie überprüft man denn sonst, ob zwei Datumsangaben identisch sind ? |
Re: Checken ob ein String wie TDate ist
Zitat:
Bei gleichem Datum sind die Ganzzahligen Anteile gleich, also alles, was vor dem Dezimalkomma steht. Der Vergleich ist dann einfach:
Delphi-Quellcode:
Älteres oder jüngeres Datum bekommt man analog dazu.
if trunc (Date1) = trunc (Date2) then
showmessage ('Datum identisch!'); Hope it helps onlinekater |
Re: Checken ob ein String wie TDate ist
Zitat:
Deswegen habe ich ja auch deisen Code:
Delphi-Quellcode:
Denn StrToDate liefert NUR das Datum (ohne Zeit, also Zeit = 0:00) zurück, genauso wie die Funktion Date auch NUR das aktuelle Datum ohne die Zeitangabe zurückliefert.
if StrToDate(Datum) = Date then
Beides also ganze Zahlen :wink: Da brauch man dann auch kein trunc mehr :!: |
Re: Checken ob ein String wie TDate ist
@Martin K: Deine Vorgehensweise des Vergleiches von StrToDate und Date ist schon ok, nur die Aussage
Zitat:
Ich denke, das war ein allgemeiner Hinweis vonSir Thornberry. btw die Aussage aus gleichen Floatwerten folgt gleiches Datum ist dagenen 100%ig richtig Gruß onlinekater |
Re: Checken ob ein String wie TDate ist
Zitat:
Allgemein ist die Aussage nicht richtig. Aber Zitat:
Zitat:
Zitat:
Habe diesen Code mit mehreren Zeitwerten bzw. Datumswerten getestet und es funktioniert! Ich möchte nur noch darauf hinweisen, dass die Überprüfung auf die aktuelle Uhrzeit nur für eine Sekunde pro Tag erfüllt ist, wobei die Überprüfung auf das aktuelle Datum für einen ganzen Tag erfüllt ist. So war es ja auch von Daether gedacht, nehme ich mal an. MfG, Martin |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:50 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