Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Funktion den Tage eines Jahres zu bestimmen (https://www.delphipraxis.net/2528-funktion-den-tage-eines-jahres-zu-bestimmen.html)

Philippe Sch. 28. Jan 2003 07:48


Funktion den Tage eines Jahres zu bestimmen
 
Hi
ich benötige eine Funktion, um den Tag im Jahr zu bestimmen (quasi eine Funktion analog zu 'DayOfWeek': 'DayOfYear' - wenn's das gäbe). Ich habe es probiert mit Differenzrechnung (Datum1 minus '31.12.' des Vorjahres = Anzahl Tage). Das Problem dabei ist nur, dass ich die Differenz mit einer Extended-Variablen aufnehmen kann (Integer funktioniert nicht), sodann die Umwandlungsfunktion 'FloatToStr' statt 'IntToStr' anwenden muss, was jeweils das max. 3stellige Resultat zur Laufzeit verlängert. Hat mir jemand eine gute Idee?
Merci
Philippe

Sharky 28. Jan 2003 08:43

Re: Funktion den Tage eines Jahres zu bestimmen
 
Hai,

warum adierst Du nicht einfach die Tage der Monate + die Tage des laufenden monats?

z.B.:

datum = 14.04.2003

Dann einfach die DaysOfMonth von Januar bis März addieren.
Prüfen ob es ein Schaltjahr ist und gegebenenfals einen Tag dazu addieren.
Jetzt noch die 14 Tage vom April dazu und fertig.

Müsste in diesem Fall also 31 + 28 + 30 + 14 = 103 ergeben

der 14.04.2004 wäre dann 104.

Gollum 28. Jan 2003 08:55

Hallo,

vielleicht hilft Dir das:

Code:
function Anzahltage(const aDatum:TDateTime):Integer;
var y, m, d:Word;
begin
  DecodeDate(aDatum, y, m, d);
  Result:=Round(aDatum-EncodeDate(y, 1, 1))+1;
end; // Anzahltage

  ...
  Label1.Caption:=IntToStr(Anzahltage(Date));
  ...

Philippe Sch. 28. Jan 2003 09:55

Gollum, vielen Dank. Ist genau das was ich brauche.
Gruss Philippe


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