I think you might be able to string together a bunch of different variables and calculate the date of the first Tuesday of each month. I started doing that with something like this:
{LOGIC(If|Integer|{MATH(Subtract|Integer|2|{DATE(WeekDayNumber|{DATE(FirstWorkdayOfMonth|11/06/2018|dddd)})}|#0)}|>|0|Value 1 is greater than value 2|Value 1 is not greater than value 2)}
This is not the final result though - I was getting so confused because that's a very ugly statement, and VC doesn't recognize it if you try to pretty it up, like this:
{
LOGIC(
If|Integer|
{MATH(Subtract|Integer|2|{DATE(WeekDayNumber|{DATE(FirstWorkdayOfMonth|11/06/2018|dddd)})}|#0)}| > | 0 |
Value 1 is greater than value 2 |
Value 1 is not greater than value 2
)
}
But my basic thought is this:
- Get the first workday of the current month.
- Get the day number of that date.
- Calculate 2 minus that day number (Tuesday is day #2). Say the result is X.
- If X >= 0 (i.e. the first workday of the month falls on or before a Tuesday), add X days to the first workday of the month.
- If X < 0, (i.e. the first workday of the month falls after a Tuesday) add X days to the first workday of the month, and then add 7 days to the result.
- At this point, you should have the date of the first Tuesday of the month. To get the following Wednesday, add another 8 days to your result.
Once you have that combination of variables set up, what you could do is have a job set up to run once each day, but have a flow that says "on start, if today's date is NOT equal to the result of that massive calculation, then stop the job". That way, if today is NOT the Wednesday in the week following the first Tuesday of the month, it will skip all steps of the job. If today IS that Wednesday, it will do all the steps of the job.
There may be an easier way to accomplish this, but I'm a VC newbie.