Mart,
The NextRunDate() UDF on my site (along with the two dependent UDFs) might give you what you need. I use it for "Third Saturday at 15:00" or "last Wednesday at 12:00 type calculations.
With a minor tweak to allow past dates, you could request the "First Monday of January" and then it's an easy calculation to the 31st Monday (ignoring a short week) or the 30th week if you want to include any short week. "Short Week" might be defined as the first Monday being a date greater than the 3rd.
The UDF download contains two UDFs, actually, and you'll need the TimeConvert() and TimeDiff() UDFs as well. The mod to specify a date should not be difficult - add an optional arg and if present/defined, use that instead of the @DATE macros to determine the desired starting date.
I might be able to assist if you think these UDFs would help.
Glenn
_________________________
Actually I
am a Rocket Scientist!