![]() |
Datum ohne Samstag Sonntag
Also ich hab eine kleine funktion mit der ich ein Datum bestimmen möchte:
Und zwar geht das von heute +5 Tage, aber Samstag und Sonntag dürfen nicht dabei sein Wie setzte ich das am besten um? |
AW: Datum ohne Samstag Sonntag
Hallo,
wenn das Ausgangsdatum auch immer ein Wochentag ist und als Enddatum auch ein Feiertag rauskommen darf, kannst Du immer + 7 rechnen. Gruß Jörg |
AW: Datum ohne Samstag Sonntag
Ah, also sozusagen +5 Arbeitstage...
Du kannst das iterativ machen und bei jedem Zwischenergebnis auf Samstag/Sonntag/Feiertag prüfen.
Delphi-Quellcode:
Bestimmt gibt es auch eine Formel, aber o.g. kleine Schleife lässt sich mit geeigneten Mitteln auvch so erweitern, das
Function AddiereArbeitstage(Datum : TDateTime; AT : Integer) : TDateTime;
Const WeekDays = [2,3,4,5,6]; Begin Assert (DayOfWeek(Result) in WeekDays,'Datum muss ein Wochentag sein'); Assert (AT > 0, 'Funktion zählt nur nach vorne'); Result := Datum; While AT>0 Do begin Result := Result + 1; if DayOfWeek(Result) in WeekDays then dec(AT); End End; ![]() |
AW: Datum ohne Samstag Sonntag
Die Aufgabenstellung ist nicht ausreichend beschrieben. Wenn immer 5 Arbeitstage zugezählt werden sollen, dann kann man gleich +7 rechnen. Sollen auf das Datum 5 Tage zugezählt werden und wenn das dann ein Samstag oder Sonntag ist, wird der darauffolgende Montag genommen, käme folgendes in Frage:
Delphi-Quellcode:
const
{ 1 = Sonntag } cAddDays: array[1..7] of Integer = (5, 7, 6, 5, 5, 5, 5); var alt, neu: TDateTime; begin ... neu := alt + cAddDays[DayOfWeek(tag)]; ... end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 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