2016-07-03 20 views

Antwort

0

Ich nehme an, Sie meinen "der letzte Arbeitstag Freitag des Vormonats", in diesem Fall glaube ich nicht, dass es möglich ist. Es würde bedeuten, dass einige Monate 2 Vorkommen haben, wenn andere 0 haben, was nicht wirklich funktioniert.

Sie bequem die ersten Arbeitstag des Monats (die erste oder die ersten Montag) tun könnte:

 
FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=1 

Oder könnten Sie immer am letzten Arbeitstag des Monats tun:

 
FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1 
+0

Szenario 1 ist, was ich benötige I.e. einige Monate haben 2 Vorkommen, während andere keine haben. – George

1

Wenn ich Sie richtig die folgenden RRULE verstanden sollte es tun:

FREQ=MONTHLY;BYDAY=1MO,1TU,1WE,1TH,1FR,-1FR;BYMONTHDAY=1,-1,-2 

Siehe next 100 instances

Es tut im Grunde zwei Dinge:

  1. Iterate der erste Wochentag, der am 1. Tag des Monats fällt
  2. Iterate am letzten Freitag eines jeden Monats, der auf die fällt letzter oder zweitletzter Tag des Monats (in diesem Fall fällt der 1. des nächsten Monats auf Samstag oder Sonntag).

Eine etwas kürzere Version, die die gleichen Ergebnisse liefern soll, ist

FREQ=MONTHLY;BYDAY=1MO,1TU,1WE,1TH,FR;BYMONTHDAY=1,-1,-2 

Diese iteriert nur jeder Freitag, sondern hält nur diejenigen, die letzten Tag eines jeden Monats über den ersten, letzten und 2. fallen. Es sieht zwar so aus, als ob der oben erwähnte Rekursionsexpansionsdienst nicht übereinstimmt. Das ist wahrscheinlich ein Fehler.

+0

Das ist eine sehr schlaue Rulle, gut gemacht! – rlanvin