Hi Hamoth,
For a non-macro solution, you can use a field coded as:
{QUOTE
{SET Delay 90}
{SET Weekday 4}
{SET a{=INT((14-{DATE \@ M})/12)}}
{SET b{={DATE \@ yyyy}+4800-a}}
{SET c{={DATE \@ M}+12*a-3}}
{SET d{DATE \@ d}}
{SET jd{=d+INT((153*c+2)/5)+365*b+INT(b/4)-INT(b/100)+INT(b/400)-32045+Delay}}
{SET jd{=INT(jd/7)*7+Weekday}}
{SET e{=INT((4*(jd+32044)+3)/146097)}}
{SET f{=jd+32044-INT(146097*e/4)}}
{SET g{=INT((4*f+3)/1461)}}
{SET h{=f-INT(1461*g/4)}}
{SET i{=INT((5*h+2)/153)}}
{SET dd{=h-INT((153*i+2)/5)+1}}
{SET dd{=((dd<8)+(dd>14)*(dd<22))*7+dd}}
{SET mm{=i+3-12*INT(i/10)}}
{SET Limit{=IF((mm=2),28+((MOD(yy,4)=0)+(MOD(yy,400)=0)-(MOD(yy,100)=0)),IF((mm=4)+(mm=6)+(mm=9)+(mm=11)=1,30,31))}}
{SET yy{=100*e+g-4800+INT(i/10)}}
{IF{dd}> 28 "{SET dd{=dd+14-Limit}}{SET mm{=MOD(mm,12)+1}}{SET yy{=yy+(mm=1)}}"}
"{dd}-{mm}-{yy}" \@ "dddd, d MMMM yyyy"}
With this coding I've assumed that, if the calculated date falls on the 5th Friday of the month, you want it to roll over to the 2nd
Friday of the following month.
The above field code is based on the item titled 'Calculate a day, date, month and year, using n days delay' in my Word Date
Calculation Tutorial, at:
http://www.wopr.com/index.php?showtopic=249902
or
http://www.gmayor.com/downloads.htm#Third_party
with the 'Delay' value changed to '90' and the addition of the following modifications to the field coding inserted where indicated:
{SET Weekday 4}
....
{SET jd{=INT(jd/7)*7+Weekday}}
....
{SET dd{=((dd<8)+(dd>14)*(dd<22))*7+dd}}
....
{SET Limit{=IF((mm=2),28+((MOD(yy,4)=0)+(MOD(yy,400)=0)-(MOD(yy,100)=0)),IF((mm=4)+(mm=6)+(mm=9)+(mm=11)=1,30,31))}}
{SET yy{=100*e+g-4800+INT(i/10)}}
{IF{dd}> 28 "{SET dd{=dd+14-Limit}}{SET mm{=MOD(mm,12)+1}}{SET yy{=yy+(mm=1)}}"}
The 'SET Limit' field was lifted from the item titled 'Calculate the day & date of a given day of the week next month', with 'Month'
changed to 'mm'.