Secondo me la logica è questa:

legge l'ultimo sabato del mese e partendo da quella data vede quanti giorni ci mancono per la fine del mese

ad esempio

Marzo09 ha come ultimo sabato 28, legge i giorni restanti al termine del mese ( il 31 )

29 30 31 sono 3 giorni va al mese successivo e inserire 3 spazi bianchi ( i 3 calcolati prima ) e così vià

Logica Generica

Mese -> Legge l'ultimo sabato -> da questa lettura ne stima i giorni N restanti per il termine del mese -> Termina il mese e va a calcolare quello successivo -> per quanto è il valore di N crea inzialmente gli spazi bianchi -> ripete la logica.

penso che sia questa.
Fammi sapere.