Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Heutige mit unabhängigem Datum vergleichen (https://www.delphipraxis.net/39484-heutige-mit-unabhaengigem-datum-vergleichen.html)

Barret 3. Feb 2005 13:13


Heutige mit unabhängigem Datum vergleichen
 
Hi!
Ich wollt gern mal wissen wie ich das heutige Datum mit einem Tag x überprüfe. Im Forum hab ich schon einen Ganzem Teil gelsen aber alles war nicht in der Form wie ich es gern machen würde.
Ich wollte das heutige Datum (
Code:
DateToStr((Now)
) mit einem festen Tag vergleichen (z.B. 05.06.XXXX (dd.mm.jjjj)| XXXX = Jahr) dieser Tag soll aber für jedes Jahr in dem wir uns befinden abgefragt werdem. Also kann ich keine Jahreszahl angeben. Eine Funktion mit der ich die Jahreszahl auslesen kann ist mir nicht geläufig und habe ich auch nicht gefunden.

Kann mir da jemand weiterhelfen????

Tyrael Y. 3. Feb 2005 13:18

Re: Heutige mit unabhängigem Datum vergleichen
 
DecodeDateTime sollte dir da weiterhelfen, dann hast du alle "Zeitkomponenten" wie

Jahr Monat Tag usw. einzeln abgespalten udn kannst dann damkit weiterarbeiten.


mfg

Minz 3. Feb 2005 13:39

Re: Heutige mit unabhängigem Datum vergleichen
 
die Funktion DatetoStr könnte dir vielleicht weiterhelfen?

aus dem String könntest du das Jahr auslesen.

Barret 3. Feb 2005 14:04

Re: Heutige mit unabhängigem Datum vergleichen
 
Ich hab das jetzt mal mit Delete probiert. Problem is nur, das der Compiler mir immer sagt: "Incompatible Typen String und procedure"

Code:
Code:
  Jahr := DateToStr(Now);
  if (DateToStr(Now) = '05.06' + Delete(Jahr, 1, 6)) then
    begin
    .
    .
    .

mr47 3. Feb 2005 14:11

Re: Heutige mit unabhängigem Datum vergleichen
 
Zitat:

Zitat von Barret
Ich hab das jetzt mal mit Delete probiert. Problem is nur, das der Compiler mir immer sagt: "Incompatible Typen String und procedure"

Code:
Code:
  Jahr := DateToStr(Now);
  if (DateToStr(Now) = '05.06' + Delete(Jahr, 1, 6)) then
    begin
    .
    .
    .

du kansst einen String auch mit Ziel:=copy(quelle,<anfang>,<ende>);

quelle und ziel sind beides strings. Ziel und quelle kann auch der gleiche String sein. und anfang und ende sind die nummer der Zeichen (also 1. Zeichen oder 7. Zeichen...)

greez

Binärbaum 3. Feb 2005 14:15

Re: Heutige mit unabhängigem Datum vergleichen
 
Das liegt daran, dass Delete() eine Prozedur ist und keine Funktion und somit hat Delete() auch keinen Rückgabewert.
Man könnte den Quelltext umschreiben:
Delphi-Quellcode:
Jahr := DateToStr(Now);
Jahr2 := DateToStr(Now);
Delete(Jahr2, 1, 6);
  if (DateToStr(Now) = '05.06' + Jahr2) then
    begin
    .
    .
    .
(Jahr2 ist ein String.)

MfG
Binärbaum

tn249 3. Feb 2005 14:15

Re: Heutige mit unabhängigem Datum vergleichen
 
ich würde das andersherum machen, den tag den du vergleichen willst mit encode in ein TDate convertieren

in DateUtils gibt es dann funktionen die dir nur den tag/monat des datums zurückgeben, die du dann direkt vergleichen kannst

MfG
tn249

Sharky 4. Feb 2005 08:38

Re: Heutige mit unabhängigem Datum vergleichen
 
:shock: Einen Datumsvergleich über Strings?
Da ist der Weg von Tyral Y. doch viel sauberer:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  rtag,
  rmonat,
  rjahr  : Word;
  tag,
  monat,
  jahr   : Word;
  referenzdatum : TDate;
begin
  referenzdatum := EncodeDate(2008,02,04); // Nur als Beispiel damit ich ein Datum habe
  DecodeDate (referenzdatum,rjahr,rmonat,rtag); // Und wieder aufspalten
  DecodeDate (date,jahr,monat,tag); // Heute
  if (rmonat = monat) AND (rtag = tag) then
  begin
    ShowMessage ('blubb');
  end;
end;

Catbytes 4. Feb 2005 08:55

Re: Heutige mit unabhängigem Datum vergleichen
 
Hallo,

Delphi-Hilfe: FormatDateTime

Im folgenden Beispiel wird mit FormatDateTime die String-Variable S auf einen Satz gesetzt, der auf eine Besprechung in drei Stunden hinweist. Der Satz hat die folgende Form: "Die Besprechung ist am Mittwoch, 15. November 2002 um 2:30 PM".

Delphi-Quellcode:
S := FormatDateTime('"The meeting is on " dddd, mmmm d, yyyy, " at " hh:mm AM/PM', Now + 0.125);
Das zur Frage, wie Du z.B. nur die Jahreszahl herausfinden möchtest (als String).

Jetzt zum eigentlichen Problem. Ich verstehe nicht, was Du eigentlich machen möchtest?

Du schreibst "Ich wollt gern mal wissen wie ich das heutige Datum mit einem Tag x überprüfe".

Was willst Du überhaupt überprüfen? Welcher Wochentag? Welcher Tag im Jahr? Differenz zwischen zwei Daten? Ist der Tag ein Feiertag? Vollmond? etc.


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