AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

den Tag des Jahres bestimmen

Ein Thema von ascotlx · begonnen am 19. Apr 2006 · letzter Beitrag vom 20. Apr 2006
Antwort Antwort
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#1

den Tag des Jahres bestimmen

  Alt 19. Apr 2006, 22:38
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: den Tag des Jahres bestimmen

  Alt 19. Apr 2006, 22:43
DayOfTheYear();
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: den Tag des Jahres bestimmen

  Alt 19. Apr 2006, 22:43
Hi!

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


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#4

Re: den Tag des Jahres bestimmen

  Alt 20. Apr 2006, 08:31
super .. besten Dank für die schnelle Antwort.

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

  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

ascotlx
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#5

Re: den Tag des Jahres bestimmen

  Alt 20. Apr 2006, 08:34
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
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#6

Re: den Tag des Jahres bestimmen

  Alt 20. Apr 2006, 10:07
Hallo Frederic,

auch ne' super Idee, nun bekomme ich aber zwei unterschiedliche Ergebnisse.
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
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: den Tag des Jahres bestimmen

  Alt 20. Apr 2006, 10:12
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]
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#8

Re: den Tag des Jahres bestimmen

  Alt 20. Apr 2006, 10:27
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
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: den Tag des Jahres bestimmen

  Alt 20. Apr 2006, 10:32
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
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#10

Re: den Tag des Jahres bestimmen

  Alt 20. Apr 2006, 10:40
ach sooo , na denn, jooo ... denn is gut
ich mach das denn auch nich wieder
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 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