![]() |
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 |
Re: den Tag des Jahres bestimmen
DayOfTheYear();
|
Re: den Tag des Jahres bestimmen
Hi!
Da hilft doch bestimmt das hier weiter: ![]() Ciao Frederic |
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:
sk_y, sk_m und sk_d werden durch eine andere Routine mit den entsprechenden Werten gefüllt.
InttoStr(DayOfTheYear(dayoftheyear(now)-EncodeDate(sk_y,sk_m,sk_d)));
...und siehe da .. es klappt. Nochmals besten Dank :thumb: ascotlx |
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:
Ciao Frederic |
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 |
Re: den Tag des Jahres bestimmen
Delphi-Quellcode:
vielleicht ist es so wie oben angegeben besser.
Edit1.Text:=InttoStr(dayoftheyear(now)-DayofTheYear(EncodeDate(2006,3,2)));
Grüße Klaus [edit] etwas korregiert[/edit] |
Re: den Tag des Jahres bestimmen
Dank dank dank
so sieht es gut aus ... ich hatte es zwischenzeitlich ein wenig verkompliziert
Delphi-Quellcode:
Nun beträgt ist der Unterschied nur noch einen Tag ?? Liegt das an der Uhrzeit ???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)); Die Variante von Klaus ist in Ordnung und funktioniert.... ascotlx |
Re: den Tag des Jahres bestimmen
Delphi-Quellcode:
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...
DayOfTheYear(dNow-dLis)
Grüße vom marabu |
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