Wie immer, viele Wege führen überall hin.

Ich würde dies schon mit einem RPG machen. Insbesonders wenn man da diverse Parameter einplant:
+/- Monate
+/- Tage
Monatsletzter/-erster
und dann so variabel, dass man später auch noch Varianten hinzufügen kann ohne laufende Programme zu beeinträchtigen.