Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wochenendtage bestimmen (https://www.delphipraxis.net/10359-wochenendtage-bestimmen.html)

seifman 16. Okt 2003 20:04


Wochenendtage bestimmen
 
Ich benötige einen Algorithmus, welcher mir aus einem bestimmten Zeitraum (z.B. 10.09.2003 bis 05.10.2003) die Tage herausfiltert, die auf einem Wochenende liegen. Es wäre nett, wenn mir jemand dabei helfen könnte.

Um nochmal genauer auf die Funktionsweise einzugehen:
Es soll gezählt werden, wie viele Tage im Zeitraum Werktage sind. Wie ich auf die gesamtzahl der tage komme weiss ich ja, ich komme jedoch nicht auf die Idee wie ich die Wochenendtage bestimmen kann.

danke:

Christian Seehase 16. Okt 2003 20:12

Re: Wochenendtage bestimmen
 
Moin seifmann,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Schau Dir mal die Funktionen StrToDate und DayOfWeek an.

himitsu 16. Okt 2003 20:13

Re: Wochenendtage bestimmen
 
Kannst z.B. die Tage mit EncodeDate/StrToDate... einer Variable(TDateTime) zuweisen und mit DayOfWeek den Wochentag herausfinden.
Und in einer Schleife (z.B. For) kannst'e dann die Tage zählen.

negaH 16. Okt 2003 20:33

Re: Wochenendtage bestimmen
 
Also mit DayOfWeek() wird der Tag das Startdatums berechnet. Nun kannst du das Startdatum sehr einfach um die Anzahl Tage erhöhen so das das Datum ein Montag ist. D.h. das Startdatum liegt nun auf einem Wochenanfang. Nun subtrahierst du dieses Startdatum vom Endedatum um die Anzahl der Tage zu bekommen. Diese Anzahl div 7 sind die vollen Wochen, und Anzahl mod 7 die Tage in der Restwoche.
Aus all diesen Fakten lässt sich direkt die Anzahl der Wochentage und Wochendtage errechnen.

Eine Schleife ist also überhaupt nicht nötig und würde im Falle 1.1.1 bis 31.12.2000 auch ziemlich lange benötigen.

Gruß Hagen

seifman 16. Okt 2003 20:49

Re: Wochenendtage bestimmen
 
Herzlichen Danke an alle für die Hilfe.
Bis bald! :-D

Daniel G 28. Jan 2007 09:38

Re: Wochenendtage bestimmen
 
Ich weiß, der Thread ist wirklich urururururalt, aber ich war eben auf der Suche nach einer Möglichkeit, das Anfangs- und Enddatum einer beliebigen Woche anhand eines beliebigen Datums in dieser Woche zu ermitteln. Dabei bin ich über die Funktion
Delphi-Referenz durchsuchenStartOfTheWeek()
gestolpert.

Dabei gilt der ISO-Standard 8601, sprich, Montag ist Tag 1 und Sonntag Tag 7.

Falls irgendwer nochmal das Problem hat.. :wink:

P.S.: Sehr kompliziert ist die Funktion aber nicht... :wink:


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