Ciao,
Questa funzione crea un array contenente informazioni sulle settimane del mese passato come parametro.
Io ho messo il numero della settimana nell'anno come indice, il numero e il giorno di inizio e fine settimana nel valore.
Modificandolo a vostro piacere potrete mettere nell'array i valori che vi servono.
Se a voi è venuto in mente qualcosa di piu semplice postate pure
:byebye:
Questa funzione crea un array contenente informazioni sulle settimane del mese passato come parametro.
Io ho messo il numero della settimana nell'anno come indice, il numero e il giorno di inizio e fine settimana nel valore.
Modificandolo a vostro piacere potrete mettere nell'array i valori che vi servono.
PHP:
<?php
// array per i mesi il primo elemento è fittizio (1)
$mesi = array(1, 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto',
'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
// dichiaro il nome della funzione
function settimane_nel_mese($month, $year) {
// array per i giorni della settimana il primo elemento è fittizio (1)
$giorni_settimana = array(1, "Lun", "Mar", "Mer", "Gio", "Ven", "Sab", "Dom");
// recupero il timestamp del primo giorno del mese
$time_primo_del_mese = mktime(0, 0, 0, $month, 1, $year);
// recupero il numero per il giorno della settimana (0->Dom 6->Sab)
$primo_del_mese = date('w', $time_primo_del_mese);
// conto i giorni del mese
$giorni_nel_mese = cal_days_in_month(CAL_GREGORIAN, $month, $year);
// inizializzo un array che conterra i dati delle settimane
$settimane = array();
// dichiaro una variabile che mi servirà per tenere il conto dei giorni da 0 a 6
$giorni = 0;
// assegno ad una variabile il numero per il giorno della settimana
$j = $primo_del_mese;
// inizio il ciclo
for ($i = 1; $i <= $giorni_nel_mese; $i++) {
// se il giorno arriva a Domenica(7) o se è l'ultima iterazione
if ($j == 7 || $i == $giorni_nel_mese) {
// recupero il timestamp del giorno
$time_giorno = mktime(0, 0, 0, $month, $i, $year);
// recupero il numero della settimana nell'anno
$numero_settimana = date('W', $time_giorno);
// calcolo la partenza della settimana girono e numero
$giorno_partenza = $j - $giorni;
$numero_partenza = $i - $giorni;
// popolo l'array che come indice avrà il numero della settimana
// come valore ho calcolato il giorno e il numero di partenza e di fine della settimana
$settimane[(int) $numero_settimana] = "da $giorni_settimana[$giorno_partenza] $numero_partenza a $giorni_settimana[$j] $i ";
// riporto al lunedi le varibili
$j = 1;
$giorni = 0;
// altrimenti
} else {
// incremento i valori
$j++;
$giorni++;
}
}
return $settimane;
}
// valorizzo il mese
$month = '05'; // maggio
// valorizzo l'anno
$year = 2012;
// richiamo la funzione
$settimane = settimane_nel_mese($month, $year);
// mostro il mese e l'anno valorizzati
echo "<p> Settimane per il mese di " . $mesi[(int) $month] . " $year </p>";
// mostro l'array
foreach ($settimane as $key => $value) {
echo "Settimana $key : $value <br/>";
}
?>
Se a voi è venuto in mente qualcosa di piu semplice postate pure
:byebye: