Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Datum berechnen (https://www.delphipraxis.net/156864-datum-berechnen.html)

Zuckerberg 17. Dez 2010 17:39

Datum berechnen
 
Hallo Community,

Ich wollte Fragen wie man die Differenz von einem Datum in der Zukunft und dem jetzigen Datum bilden kann um das Ergebnis dann in Tagen anzeigen zu können ...

Da gab es doch einen Befehl für, oder ?

und wie kann man dann die Differenz dann in Tagen ausgeben ??

Gruß Zuckerberg

s.h.a.r.k 17. Dez 2010 17:51

AW: Datum berechnen
 
DaysBetween() aus der DateUtils.

Zuckerberg 17. Dez 2010 17:58

AW: Datum berechnen
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1069160)
DaysBetween() aus der DateUtils.

Gibts diese Funktion auch bei Delphi 5 ?

s.h.a.r.k 17. Dez 2010 18:06

AW: Datum berechnen
 
Hab keines da zum testen ;) Von daher kann ich dir nur raten mal in die Hilfe zu schauen.

Ansonsten programmierst es halt selbst schnell -- 1.0 in TDateTime entspricht einem Tag:
Delphi-Quellcode:
function DaysBetween(const AFrom, ATo: TDateTime): Integer;
begin
  Result := Trunc(AFrom - ATo);
end;

DeddyH 17. Dez 2010 18:37

AW: Datum berechnen
 
Delphi-Quellcode:
function DaysBetween(const AFrom, ATo: TDateTime): Integer;
begin
  Result := abs(Trunc(AFrom - ATo));
end;
;)

Zuckerberg 17. Dez 2010 18:58

AW: Datum berechnen
 
Hmmm ich glaube das klappt jedoch kriege ich immer als Wert irgendwas über 40000 ...
liegt das daran das Delphi ab 1900 mit den Tagen beginnt zu zählen ??!

mkinzler 17. Dez 2010 19:08

AW: Datum berechnen
 
Ja, wie bei Windows üblich

Zuckerberg 17. Dez 2010 19:45

AW: Datum berechnen
 
Zitat:

Zitat von mkinzler (Beitrag 1069171)
Ja, wie bei Windows üblich

Aha
und wie bekomme ich den genauen Tageswert ?

mkinzler 17. Dez 2010 19:54

AW: Datum berechnen
 
Ein Windows Timestamp enthält die Sekunden seit dem 31.12.1899 23:59.59

rollstuhlfahrer 17. Dez 2010 20:23

AW: Datum berechnen
 
Zitat:

Zitat von Zuckerberg (Beitrag 1069175)
Aha
und wie bekomme ich den genauen Tageswert ?

Da gibt es doch die Funktion Delphi-Referenz durchsuchenDecodeDate.

Bernhard

Zuckerberg 17. Dez 2010 22:53

AW: Datum berechnen
 
Zitat:

Zitat von rollstuhlfahrer (Beitrag 1069177)
Zitat:

Zitat von Zuckerberg (Beitrag 1069175)
Aha
und wie bekomme ich den genauen Tageswert ?

Da gibt es doch die Funktion Delphi-Referenz durchsuchenDecodeDate.

Bernhard

Ok gut hier wird mir nur Bruchhaft weiter geholfen ...
Wenn ich nun DecodeDate nutze habe ich 3 variablen:
Jahr Monat und Tag

sowie das Aktuelle Datum ...

Ersteres Datum liegt in der Zukunft ...

Hmmm dann müsste es doch so klappen das ich einfach die aktuelle Anzahl der Tage raus finde und die von der Differenz abziehe ???

oder ?

sx2008 18. Dez 2010 01:35

AW: Datum berechnen
 
Zitat:

Zitat von Zuckerberg (Beitrag 1069169)
Hmmm ich glaube das klappt jedoch kriege ich immer als Wert irgendwas über 40000 ...
liegt das daran das Delphi ab 1900 mit den Tagen beginnt zu zählen ??!

Das liegt daran, dass eines der beiden "Datümer" = 0.0 (entspricht dem 31.12.1899) ist.
Du hast also etwas falsch gemacht. :wink:
Hier ein Beispiel wie man DaysBetween verwenden kann:
Delphi-Quellcode:
var
  heute, Anfang2000 : TDateTime;
  anzahltage : Integer;
begin
  heute := SysUtils.Date;
  Anfang2000 := EncodeDate(2000, 1, 1); // 1.Jan.2000
  anzahltage := DaysBetween(heute, Anfang2000);
  ShowMessageFmt('Zwischen Heute und Anfang 2000 sind %d Tage', [anzahltage]);
end;

Luckie 18. Dez 2010 06:43

AW: Datum berechnen
 
Die Mehrzahl von Datum ist Daten. ;)

s.h.a.r.k 18. Dez 2010 07:36

AW: Datum berechnen
 
Zitat:

Zitat von DeddyH (Beitrag 1069167)
Delphi-Quellcode:
function DaysBetween(const AFrom, ATo: TDateTime): Integer;
begin
  Result := abs(Trunc(AFrom - ATo));
end;
;)

Geht mit diesem Abs nicht noch ein wenig Information verloren? Denn wenn der Wert kleiner 0 ist, dann ist halt ATo nur größer als AFrom, was ja an sich nicht schlimm ist. Aber gut, kann man drüber streiten -- und Weihnachten steht vor der Türe, also lassen wir das :mrgreen:

DeddyH 18. Dez 2010 09:30

AW: Datum berechnen
 
Der Abstand zwischen 2 Daten sollte IMO immer positiv sein. Von Hamburg nach München ist es ja auch genauso weit wie von München nach Hamburg, oder?

s.h.a.r.k 20. Dez 2010 15:44

AW: Datum berechnen
 
Ja, das kann man genau so sehen, wie du sagst. Mir ist der Punkt auch definitv klar. Allerdings kann eben ein negativer Wert auch eine Aussage haben. So geht diese Information allerdings verloren. Aber gut, das darf eben jeder für entscheiden, wie er es denn haben will ;)

DeddyH 20. Dez 2010 15:57

AW: Datum berechnen
 
Letztes Argument: das Original gibt auch nur positive Werte zurück :zwinker:

s.h.a.r.k 20. Dez 2010 16:17

AW: Datum berechnen
 
Nicht schießen, ich ergebe mich! Ich ergebe mich! :mrgreen:


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