Autor Beitrag
mi-frank
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Do 02.02.06 00:53 
Hallo,

ich habe das Problem, dass ich ein Datum, das ich in einer Variablen gespeichert habe mit dem heutigen Datum vergleichen möchte!


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Var 
 Abgelaufen : String;
 Abgelaufen := 02.02.2006;

 if Abgelaufen < FormatDateTime('dd.mm.yyyy',Date) then
   msgbox("Demo ist abgelaufen");



Ich hoffe mir kann einer von euch helfen, ist bestimmt auch ganz einfache, oder?

Danke euch schon mal im voraus!!

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt
Grishnak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 221

Windows XP Home
Delphi 7 PE, Delphi 2005 PE
BeitragVerfasst: Do 02.02.06 01:13 
Da fallen mir spontan zwei Möglichkeiten ein:

1.) Du läßt die Datumsangeben im Urspünglichen Format TDateTime (= Double)
2.) FormatDateTime('yyyy.mm.dd',Date)

_________________
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 02.02.06 01:16 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
function TestPhase(Day, Month, Year : Word) : Boolean;
var
  Anfang, Ende : TDateTime;
begin
  Anfang := Date;
  Ende := EncodeDate(Year, Month, Day);
  if Ende > Anfang then
    Result := True
  Else
    Result := False;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
 if TestPhase(02,02,2006) then
begin
  MessageDlg('Test Phase überschritten! - Das Programm wird beendet!'
             ,mtInformation,[mbOk],0);
  Application.Terminate
  end
  else ShowMessage('Lassen wir grad noch mal so gelten !');
end;
mi-frank Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Do 02.02.06 09:14 
Titel: Was hab ich falsch gemacht?
Morgen,

dein Tipp ist ja nicht schlecht, aber mein Code sieht so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
begin
var 
 Abgelaufen : String;
 Abgelaufen := '20.02.2006'
 
 dEnde := StrToDate(Abgelaufen);
 if  dEnde > Date then
   boAbgelaufen := true
 else
   boAbgelaufen := false;
end;



und funktioniert leider nicht, was hab ich falsch gemacht!?

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Do 02.02.06 09:19 
Also erstmal mus der Deklarationsteil vor das begin.
Dann musst du die Variable dEnde und boAbgelaufen, falls noch nicht geschehen, deklarieren.

ausblenden Delphi-Quelltext
1:
2:
 if dEnde > Date then
 boAbgelaufen := true

bedeutet: wenn das Datum dEnde größer ist als das heutige Datum (also in der Zukunft liegt), dann ist boAbgelaufen = true. Also nicht ganz logisch :-) Musst du den Vergleichsoperator ändern...
mi-frank Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 44



BeitragVerfasst: Do 02.02.06 10:37 
Titel: Beim Debuggen kommen so komische Zahlen heraus
Sorry, hab mich in der Hetze vertippt!!

Interessieren tut mich eigentlich nur, ob mein Syntax so stimmt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
Abgelaufen := '20.02.2006' 
dEnde := StrToDate(Abgelaufen); 

if dEnde < Today then




Weil wenn ich debugge kommen so komische zahlen raus, z.B. 38803!

Ist das Normal???

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt
N8Falter74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53

Win XP
D7 Prof
BeitragVerfasst: Do 02.02.06 10:49 
Titel: Re: Beim Debuggen kommen so komische Zahlen heraus
user profile iconmi-frank hat folgendes geschrieben:
Sorry, hab mich in der Hetze vertippt!!

Interessieren tut mich eigentlich nur, ob mein Syntax so stimmt:

Abgelaufen := '20.02.2006'
dEnde := StrToDate(Abgelaufen);

if dEnde < Today then



Weil wenn ich debugge kommen so komische zahlen raus, z.B. 38803!

Ist das Normal???


Hi, schau mal in der Delphi-Hilfe nach TDateTime.

Da steht, dass Datumswerte vom Typ Double sind - also Flieskommazahlen.
Da sind auch ein paar Beispiele für Zahlen und dessen Datumsentsprechungen.

Grüße
Sebastian