title image


Smiley Grosses Fehler in kleine Formel...
Hi,



is wohl schon zu spät zum Nachdenken...

Wenn die Formel schon hauptsächlich aus Feiertagsberechnungen besteht, sollte man die natürlich auch berücksichtigen - also vergiß die 1. Version (war wohl so 'ne Art Beta ;o)) und nimm lieber die hier :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 gewünschte Format 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);

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

LastWeekday := @Weekday(tmpLastWorkday);

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

WantedEntry := @SubSet(@SubSet(PossibleDays; Offset); 1);

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

@Prompt([OK]; "Der letzte is..."; @Text(Lastworkday))
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: