Ave!

Sto cercando di creare un calendario dinamico.
Ora: so che trafficando per la rete se ne trovano di belli e pronti tra moduli di cms e script pronti all'uso ma siccome mi sto intignando vorrei capire l'esatto funzionamento di quello che pubblico

per ora ho fatto, per quando poco, quanto segue:

Codice PHP:
$giorno date("j");
$mese date("n");
$anno date("Y");

$settimana date("w");
$giornosettimana = array ("Domenica""Lunedì""Martedì""Mercoledì","Giovedì""Venerdì""Sabato");

$nomemese $mese;
switch (
$nomemese) {
case 
'01'$nomemese ='Gennaio'$n_giorni 31; break;
case 
'02'$nomemese ='Febbraio'$n_giorni 28; break;
case 
'03'$nomemese ='Marzo'$n_giorni 31; break;
case 
'04'$nomemese ='Aprile'$n_giorni 30; break;
case 
'05'$nomemese ='Maggio'$n_giorni 31; break;
case 
'06'$nomemese ='Giugno'$n_giorni 30; break;
case 
'07'$nomemese ='Luglio'$n_giorni 31; break;
case 
'08'$nomemese ='Agosto'$n_giorni 31; break;
case 
'09'$nomemese ='Settembre'$n_giorni 30; break;
case 
'10'$nomemese ='Ottobre'$n_giorni 31; break;
case 
'11'$nomemese ='Novembre'$n_giorni 30; break;
case 
'12'$nomemese ='Dicembre'$n_giorni 31; break;


$data_odierna $giornosettimana[$settimana].","." ".$giorno." ".$nomemese." ".$anno
da qui riesco, tramite una banale tabella, ad incolonnare il tutto...ma le mie domande sono:

1) come faccio a sudduvidere i giorni per le varie settimane quindi creare le righe necessarie (dato che in alcuni casi me ne occorrerebbero 4 e in altre 5 a seconda di come "scavallano" prima e ultima settimana) per poi far proseguire di conseguenza gli altri giorni

2) come faccio a far partire il primo giorno del mese nel giorno della settimana relativo (es. un mercoledì 1 novembre 2006 dovrebbe stampare da metà riga)

3) sebbene è una questione che avrò nel 2008 (ma sono un po' lungimirante), come faccio a calcolare il febbraio di 29 dì?

ringrazio le buone anime che vorranno darmi una mano nel risolvere gli arcani