Lotus Notes / Domino Sonstiges > Tipps und Tricks
Berechnung der Arbeitstage zwischen zwei Terminen
jr:
Unter R6 habe ich mit der @For-Schleife natürlich noch andere Möglichkeiten...
Semeaphoros:
Diali: @BusinessDays zieht die Feiertage ab, wenn diese korrekt im Adressbuch/Kalender hinterlegt sind. Allerdings kennt Notes - wie Joachim richtig sagt - keine halben Feiertage.
diali:
@Semeaphoros
ja ich meinte die halben Tage - Sorry hatte das "halbe" vergessen.
Die Tage musst Du als Liste mitgeben oder funktionieren auch Feiertagseinträge im Kalender? Kann ich mir nicht vorstellen, da der Entwickler nicht garantieren kann, dass jeder User dies Feiertage einträgt oder ausversehen einen löscht usw.
Gruß
Dirk
MNoering:
Hallo an Alle,
ich weiß, dass dieser Thread schon etwas älter ist, aber er beschreibt genau das Problem, welches ich gerade habe.
Ich habe das unten zitierte Codefragment in eine Datenbank implementiert und die Berechnung der Arbeitstage funktioniert hervoragend.
--- Zitat von: jr am 21.06.05 - 09:11:06 ---Hallo,
noch eine weitere @Formel, die vielleicht für einige interessant ist. Häufig hat man dass Problem, dass man in einem kleinen Workflow die Arbeitstage benötigt, weil z. B. nach 3 Arbeitstagen eine Eskalation stattfinden muss. Wenn man das richtig machen möchte, dann muss man Wochenden und Feiertage berücksichtigen und ist die Berechnung nicht mehr ganz trivial.
In der nachfolgenden Formel wird davon ausgegangen, dass die Liste der Feiertage in der Variablen "feierTage" als Text-Liste gespeichert ist (bei uns war das damals ein Konfiguratoinsdokument). Außerdem gibt es noch eine Liste mit halben Feiertagen, sofern der Arbeitgeber diese nicht als vollständig frei definiert.
Mit LotusScript geht das natürlich deutlich einfacher, aber damals war das noch keine Option und außerdem kann man die Formel so leichter in ein berechnetes Feld aufnehmen
Vielleicht kann ja der ein oder andere die Formel gebrauchen.
REM "Berechnung der Arbeitstage zwischen VON und BIS";
von := ...;
bis := ...;
feierTage := "1.1.2005" : "6.1.2005" : ...;
halbeTage := "24.12.2005" : "31.12.2005" : ...;
alleTageStr := @Explode(@TextToTime(@Text(Von) + " - " + @Text(Bis)));
alleTage := @TextToTime(alleTageStr);
wochenendeStr := @Replace(@Text(@Weekday(alleTage)); "1" : "7"; "x" : "x") + alleTageStr;
wochenende := @Trim(@Right(wochenendeStr; "x"));
freieTage := @Unique(feierTage : wochenende);
arbeitsTage := @Trim(@Replace(alleTageStr; @Keywords(alleTageStr; freieTage; ""); ""));
halbeArbTage := @Keywords(arbeitsTage; halbeTage; "");
anzahlTage := @Elements(arbeitsTage) - (@Elements(halbeArbTage) / 2);
anzahlTage
Passend hierzu habe ich auch noch die Formel zu berechnen des n-ten Arbeitstags ab einem bestimmten Datum. Es werden die gleichen Konfigurationswerte wie oben benutzt.
...
Gruß,
Joachim
--- Ende Zitat ---
Allerdings funktioniert die Übergabe der Feiertage aus einem Profildokument nicht.
Meine Lösung:
Profildokument Feld:
* Feldname: f_tage
* Mehrfachwerte zulassen: Ja
* Trennzeichen: Neue Zeile
Berechnen Button:
REM {Berechnung der Arbeitstage zwischen VON und BIS};
von := StartDate;
bis := EndDate;
FeierTage := @GetProfileField("config";"f_tage");
halbeTage := "24.12.2005" : "31.12.2005" : ...;
alleTageStr := @Explode(@TextToTime(@Text(Von) + " - " + @Text(Bis)));
alleTage := @TextToTime(alleTageStr);
wochenendeStr := @Replace(@Text(@Weekday(alleTage)); "1":"7" ; "x":"x") + alleTageStr;
wochenende := @Trim(@Right(wochenendeStr; "x"));
freieTage := @Unique(FeierTage : wochenende);
arbeitsTage := @Trim(@Replace(alleTageStr; @Keywords(alleTageStr; freieTage; ""); ""));
halbeArbTage := @Keywords(arbeitsTage; halbeTage; "");
anzahlTage := @Elements(arbeitsTage) - (@Elements(halbeArbTage) / 2);
FIELD UTage := anzahlTage;
@True
Meine Frage - wie kann ich die Feiertagsliste am besten aus einem Profildokument übergeben?
Freundliche Grüße
Mathias
CarstenB:
Wo nutzt du die Formel? Maske, Ansicht, ...?
Gruß
Carsten
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln