Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Differenz berechnen (https://www.delphipraxis.net/6363-differenz-berechnen.html)

Uncle Cracker 8. Jul 2003 11:03


Differenz berechnen
 
Ich habe da mal 'ne Frage und die lautet:

Ich habe 2 Datumsdaten, die ich vergleichen möchte.

Das heisst, ich lade ein Datum aus einer Datei und das andere hol ich mir mit DateToStr(Now). Nun möchte ich die Tage ausrechnen, die zwischen den beiden Daten liegen.

Also ich habe zum Beispiel das heutige Datum '8.7.2003' und ein altes Datum '1.7.2003'. Nun würde ich gern die Differenz von den Tagen haben, also als Antwort '7 Tage'.

Weis jemand vielleicht wie das geht?


:love: Danke UC

sakura 8. Jul 2003 11:23

Re: Differenz berechnen
 
Okay, lassen wir mal strFileDatum das Datum aus der Datei im String-Format sein, dann geht es wie folgt:
Delphi-Quellcode:
var
  TagCount: Integer;
begin
  TagCount := Trunc(Now) - Trunc(StrToDateTime(strFileDatum));

  ShowMessage('Es sind ' + IntToStr(TagCount) + ' Tage.');
end;
...:cat:...

Uncle Cracker 8. Jul 2003 20:52

Re: Differenz berechnen
 
Irgenwie krieg ich das nicht so hin.

Bei mir sieht das so aus, nachdem alles geladen wurde:

Delphi-Quellcode:
//Label1
AltesDatum.Caption:='1.7.2003',
//Label2
AktuellesDatum.Caption:='8.7.2003'
Nun würde ich gern im Label3 das Stehen haben: '7 Tage'

Gibt es da vielleicht ein Beispiel oder verstehe ich sakuras Code einfach nicht :|


:love: Danke UC

Sanchez 8. Jul 2003 20:58

Re: Differenz berechnen
 
Tach auch,

Sakuras Code beantwortet die Frage schon. Hab mal deine Bezeichnung im Code eingesetzt.

Delphi-Quellcode:
var
  TagCount: Integer;
begin
  TagCount := Trunc(AktuellesDatum.Caption) - Trunc(StrToDateTime
                    (AltesDatum.Caption));

  Label3.Caption := 'Es sind ' + IntToStr(TagCount) + ' Tage.';
end;
Ich denke das willst du haben, oder?

Zur Erklärung: Der Ganzzahlige Teil von TDateTime gaben die Tage an. Du musst nur die Tage des alten Datums von den Tagen vom aktuellen Datum subtrahieren.

mfg Daniel

Daniel B 8. Jul 2003 21:00

Re: Differenz berechnen
 
Hallo,

vielleicht ein verständlicherer Weg.
Unit "DateUtils" einbinden!
Delphi-Quellcode:
procedure TForm1.Button22Click(Sender: TObject);
begin
  Label3.Caption := IntToStr(DaysBetween(
    StrToDate(Label1.Caption), StrToDate(Label2.Caption)));
end;
Grüsse, Daniel :hi:

Uncle Cracker 8. Jul 2003 21:04

Re: Differenz berechnen
 
Bei mir kommt jetzt Inkompatiblke Typen nach dem

TagCount := Trunc(AktuellesDatum.Caption)

Was ist denn nun schon wieder das Problem?


:love: Danke UC

Uncle Cracker 8. Jul 2003 21:05

Re: Differenz berechnen
 
Zitat:

Zitat von Daniel B
Hallo,

vielleicht ein verständlicherer Weg.
Unit "DateUtils" einbinden!

Danke, doch bei Delphi 4 Standard gibt es die Komponente nicht :cry:

Daniel B 8. Jul 2003 21:06

Re: Differenz berechnen
 
Hallo,

Du musst auch AktuellesDatum, sowie auch AltesDatum mit StrToDateTime umwandeln.

Grüsse, Daniel :hi:

Daniel B 8. Jul 2003 21:07

Re: Differenz berechnen
 
Zitat:

Zitat von Uncle Cracker
Danke, doch bei Delphi 4 Standard gibt es die Komponente nicht :cry:

Das ist keine Komponente, sondern eine Unit, ganz oben bei Uses das noch mit dazu eintragen!

Grüsse, Daniel :hi:

Sanchez 8. Jul 2003 21:08

Re: Differenz berechnen
 
Sorry, da hab ich was vergessen, der code sollte so aussehen:

Delphi-Quellcode:
Source:

var
  TagCount: Integer;
begin
  TagCount := Trunc(StrToDateTime(AktuellesDatum.Caption))
                   - Trunc(StrToDateTime(AltesDatum.Caption));

  Label3.Caption := 'Es sind ' + IntToStr(TagCount) + ' Tage.';
end;
"Trunc" verlangr einen Fließkommawert, ich hab ihm aber einen String gegeben.

So sollte es aber funktionieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 Uhr.
Seite 1 von 3  1 23      

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