title image


Smiley Re: R5.09a: Formel für letzten Arbeitstag...
Hi,



falls Du da noch die Feiertage mit berücksichtigen willst, sollte folgende Formel funzen :Rem "Feste Feiertage - bei Bedarf ergänzen / anpssen - im Format d.m";

FixHolidayList := "1.1":"24.12":"25.12":"26.12":"31.12";

Rem "Ostern nach Gauss";

m:= 24;

n := 5;

a := @Modulo(Year; 19);

b:= @Modulo(Year; 4);

c := @Modulo(Year; 7);

d := @Modulo((19 * a + m); 30);

e := @Modulo((2 * b + 4 * c + 6 * d + n); 7);

EasterSunday := @Adjust(@Date(Year; 3; 1); 0; 0; d + e + 21; 0; 0; 0);

EasterSundayDay := @Day(EasterSunday);

@If(@Month(EasterSunday) = 4 & (EasterSundayDay = 26 | (EasterSundayDay = 25 & a > 10 & d = 28)); @Set("EasterSunday"; @Adjust(EasterSunday; 0; 0; -7; 0; 0; 0));"");

GoodFriday := @Adjust(EasterSunday; 0; 0; -2; 0; 0; 0);

EasterMonday := @Adjust(EasterSunday; 0; 0; 1; 0; 0; 0);

Rem "Himmelfahrt";

TheVacation := @Adjust(EasterSunday; 0; 0; 39; 0; 0; 0);

Rem "Pfingstmontag";

WhitsunMonday := @Adjust(EasterSunday; 0; 0; 49; 0; 0; 0);

Rem "Liste aller variablen Feiertage in das benötigte Format (d.m) bringen";

VarHolidayList := GoodFriday : EasterSunday : EasterMonday : TheVacation : WhitsunMonday;

Rem "Liste aller Feiertage";

FullHolidayList := FixHolidayList : (@Text(@Day(VarHolidayList)) + "." + @Text(@Month(VarHolidayList)));

Rem "Tage des Monats";

FirstDay := @Date(Year; Month; 1);

Lastday := @Adjust(@Adjust(FirstDay;0; 1; 0; 0; 0; 0);0;0;-1;0;0;0);

DayList := 1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:22:23:24:25:26:27:28:29:30:31;

NumOfDays := 1+ (LastDay - FirstDay) / 86400;

DateListText := @SubSet(@Text(DayList) + "." + @Text(Month); NumOfDays);

Rem "Feiertage aus Tagesliste entfernen";

PossibleDays := @Trim(@Replace(DateListText; FullHolidayList; ""));

Rem "Letzten Arbeitstag ermitteln";

LastFromList := @SubSet(PossibleDays; -1);

LastWorkday := @Date(Year; @TextToNumber(@Word(LastFromList; "."; 2)); @TextToNumber(@Word(LastFromList; "."; 1)));

LastWeekday := @Weekday(LastWorkday);

Offset := @If(LastWeekday = 7; -1; LastWeekday = 1; -2; 0);

@If(Offset != 0; @Set("LastWorkday"; @Adjust(LastWorkday; 0; 0; Offset; 0; 0; 0)); "");

@Prompt([OK]; "Der letzte is..."; @Text(Lastworkday));Die Formel "geht davon aus", dass die Nummer des gewünschten Monats im Feld "Month", das Jahr im Feld "Year" steht und beide Werte als Zahl vorliegen. Kannste ja bei Bedarf noch anpassen und ggf. noch eine Fehlerbehandlung einbauen...
Gruß, der Hoschie

IBM Certified Advanced Application Developer - Lotus Notes and Domino 6 / 6.5 / 7
Certified Lotus Professional Domino R5 Principal Application Developer



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: