Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   den Tag des Jahres bestimmen (https://www.delphipraxis.net/67784-den-tag-des-jahres-bestimmen.html)

ascotlx 19. Apr 2006 21:38


den Tag des Jahres bestimmen
 
Moin alle zusammen,

ich habe (mal wieder) ein Problem... vielleicht könnt Ihr mir helfen.
Ich habe schon nach einer Lösung gesucht, aber nur einen Teil gefunden.

Mein Problem:

Ich habe ein unbestimmtes Datum (dd.mm.yyyy) und möchte nun den Tag des
Jahres bestimmen, da ich das Ergebnis vom aktuellen Tag des Jahres abziehen
will. Den aktuellen Tag des Jahres habe ich schon (DP sei dank).

Delphi-Quellcode:

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

edit4.Text:=IntToStr(Anzahltage(Date));

cu && besten Dank für Eure Hilfe

ascotlx

mkinzler 19. Apr 2006 21:43

Re: den Tag des Jahres bestimmen
 
DayOfTheYear();

fkerber 19. Apr 2006 21:43

Re: den Tag des Jahres bestimmen
 
Hi!

Da hilft doch bestimmt das hier weiter:
http://www.tutorials.de/forum/delphi...errechnen.html


Ciao Frederic

ascotlx 20. Apr 2006 07:31

Re: den Tag des Jahres bestimmen
 
super .. besten Dank für die schnelle Antwort.

Ich habe - nachdem ich nochmal nach den genannten Schlagworten gesucht habe, folgende
Lösung genommen:

Delphi-Quellcode:
  InttoStr(DayOfTheYear(dayoftheyear(now)-EncodeDate(sk_y,sk_m,sk_d)));
sk_y, sk_m und sk_d werden durch eine andere Routine mit den entsprechenden Werten gefüllt.
...und siehe da .. es klappt.

Nochmals besten Dank :thumb:

ascotlx

fkerber 20. Apr 2006 07:34

Re: den Tag des Jahres bestimmen
 
Hi!

Sehe ich es richtig, dass du den Abstand in Tagen zwischen zwei Daten ermitteln möchtest?
Warum dann nicht so:

Zitat:

Returns the number of whole days between two specified TDateTime values.

Unit

DateUtils

Category

datetime routines

Delphi syntax:

function DaysBetween(const ANow, AThen: TDateTime): Integer;

Ciao Frederic

ascotlx 20. Apr 2006 09:07

Re: den Tag des Jahres bestimmen
 
Hallo Frederic,

auch ne' super Idee, nun bekomme ich aber zwei unterschiedliche Ergebnisse. :gruebel:
Kannst Du Dir das erklären, oder sich jemand (bzw. mir ??)?? oder so ähnlich...

Delphi-Quellcode:

var dtNow, dtList : TDateTime;

dtList := EncodeDate(2006,3,2);
dtNow := Now;

Edit1.Text:=InttoStr(DayOfTheYear(dayoftheyear(now)-EncodeDate(2006,3,2))); // ergibt 46
Edit2.Text:=IntToStr(DaysBetween(dtNow, dtList));                           // ergibt 49 ... sollte richtig sein

ascotlx

Klaus01 20. Apr 2006 09:12

Re: den Tag des Jahres bestimmen
 
Delphi-Quellcode:
Edit1.Text:=InttoStr(dayoftheyear(now)-DayofTheYear(EncodeDate(2006,3,2)));
vielleicht ist es so wie oben angegeben besser.

Grüße
Klaus

[edit] etwas korregiert[/edit]

ascotlx 20. Apr 2006 09:27

Re: den Tag des Jahres bestimmen
 
Dank dank dank

so sieht es gut aus ... ich hatte es zwischenzeitlich ein wenig verkompliziert

Delphi-Quellcode:

var dNow,dtNow, dtBirth, dLis,dtList : TDateTime;

  dtList := EncodeDate(y,m,d);
  dtNow := Now;

  dNow:=now;
  dLis:=EncodeDate(2006,3,2);

  Edit1.Text:=InttoStr(DayOfTheYear(dNow-dLis));
  Edit2.Text:=IntToStr(DaysBetween(dtNow, dtList));
Nun beträgt ist der Unterschied nur noch einen Tag ?? Liegt das an der Uhrzeit ???

Die Variante von Klaus ist in Ordnung und funktioniert....

ascotlx

marabu 20. Apr 2006 09:32

Re: den Tag des Jahres bestimmen
 
Delphi-Quellcode:
DayOfTheYear(dNow-dLis)
Die Funktion interpretiert den Ausdruck als Datum - in Wirklichkeit ist es ein Zeitintervall. Das ist so, als würdest du Äpfel mit Birnen multiplizieren - oder so ähnlich...

Grüße vom marabu

ascotlx 20. Apr 2006 09:40

Re: den Tag des Jahres bestimmen
 
ach sooo , na denn, jooo ... denn is gut
ich mach das denn auch nich wieder :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 Uhr.

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