or download this
select to_char(generate_series('140201','150101',interval'1mon')-inter
+val'1','DD'); -- Pg (9.5dev)
SELECT TO_CHAR(ADD_MONTHS(DATE'14-1-1',LEVEL)-1,'DD')FROM Dual CONNECT
+ BY LEVEL<13; -- Oracle (10g)
...
select 30+(3+(3*m+3)%5-(3*m+1)%5)/5from generate_series(3,13)f(m); --
+ wrog's (short but incomplete: march through january)