Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi einem Datum nur Arbeitstage hinzuaddieren (https://www.delphipraxis.net/30112-einem-datum-nur-arbeitstage-hinzuaddieren.html)

hauiclaudi 20. Sep 2004 11:36


einem Datum nur Arbeitstage hinzuaddieren
 
:gruebel: Will einem Datum z.B 100 Tage hinzuaddieren um einen neuen Termin zu erhalten. Wichtig ist aber, dass die 100 Tage nur Arbeitstage sind.

Er muss also beim aufaddieren jeweils den Samstag und Sonntag weglassen. Ich habe zwar eine Routine geschrieben wo er prüft ob es ein Samstag oder Sonntag gibt, wenn ja dann überspring das usw.

Das Problem ist aber, dass er viele Datensätze berechnen muß und dieser Vorgang dann sehr lange dauert.
Gibt es eine Funktion (Routine) die nur Arbeitstage addiert?

var
neuesDatum : TdateTime ;

..
neuesDatum := Date + nurArbeitstage(100) ;

DP-Maintenance 20. Sep 2004 11:38

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Diese Sparte ist nicht für Fragen gedacht ;-)

shmia 20. Sep 2004 12:03

Re: einem Datum nur Arbeitstage hinzuaddieren
 
Zitat:

Zitat von hauiclaudi
:gruebel: Will einem Datum z.B 100 Tage hinzuaddieren um einen neuen Termin zu erhalten. Wichtig ist aber, dass die 100 Tage nur Arbeitstage sind.

Er muss also beim aufaddieren jeweils den Samstag und Sonntag weglassen. Ich habe zwar eine Routine geschrieben wo er prüft ob es ein Samstag oder Sonntag gibt, wenn ja dann überspring das usw.

Das Problem ist aber, dass er viele Datensätze berechnen muß und dieser Vorgang dann sehr lange dauert.
Gibt es eine Funktion (Routine) die nur Arbeitstage addiert?

siehe: http://www.delphipraxis.net/internal...ct.php?t=22228
Delphi-Quellcode:
neuesDatum := Date;
// nur mit einer Schleife werden auch Feiertage & Ferien berücksichtigt
for i := 1 to 100 do
   neuesDatum := NextWorkingDay(neuesDatum, HolidayCallback);


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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 by Thomas Breitkreuz