<?php
# Si date non définie
      if ( !isset ( $_GET['date'] ) )
      {
      $year = date ( 'Y' ) ;
      $now   = date ( 'Y/m/d' ) ;
      $month  = date ( 'n' ) ;
      $day = date ( 'd' ) ;
      }
# Si date définie
      elseif ( isset ( $_GET['date'] ) )
      {
      $data = explode ( ' ' , $_GET['date'] ) ;
      $year = $data[0] ;
      $month = $data[1] ;
      $day = $data[2] ;
      $now = date ( 'Y/m/d' , mktime ( 0 , 0 , 0 , $month , $day , $year ) ) ;
      }
# Tableaux de données
      $tab_month  = array ( 'Janvier' , 'Février' , 'Mars' , 'Avril' , 'Mai' , 'Juin','Juillet' , 'Août' , 'Septembre' , 'Octobre' , 'Novembre' , 'Décembre' ) ;
      $tab_day  = array ( 'Lun' , 'Mar' , 'Mer' , 'Jeu' , 'Ven' , 'Sam' , 'Dim' ) ;
?>
<table width="700" border="1" cellspacing="1" cellpading="2" align="center">
<tr>
<td colspan="7" align="center">
<?php
      echo
      '<a href="?date=' . date ( 'Y+m+d' , mktime ( 0 , 0 , 0 , $month - 1 , $day , $year ) ) . '"><<</a>' .
      '<a> ' . $tab_month[$month-1] . ' ' . $year . ' </a>' .
      '<a href="?date=' . date ( 'Y+m+d' , mktime ( 0 , 0 , 0 , $month + 1 , $day , $year ) ) . '">>></a>' ;
?>
</td>
</tr>
<tr>
<td colspan="7"> </td>
</tr>
<?php
# Le calendrier commence la semaine un lundi. Si le premier jour du moi est un dimanche on produit un décalage :
      $num_day = date ( 'w' , mktime ( 0 , 0 , 0 , $month , 01 , $year ) ) ;
      if ( $num_day == 0 ) // Si le 1er est un dimanche
      {
      $num_day = 7 ;
      }
# Nombre de jour dans le mois
      $max_day = date ( 't' , mktime ( 0 , 0 , 0 , $month , 01 , $year ) ) ;
      $cpt_day = 2 ;
      while ( $cpt_day <= $max_day + $num_day )
      {
      
            $i = 0 ;
            while ( $i < 7 )
            {
            $val = date ( 'd' , mktime ( 0 , 0 , 0 , $month , $cpt_day - $num_day , $year ) ) ;
$class = ' style="color:#FF0000;"' ;
if ( $now == date ( 'Y/m/d' , mktime ( 0 , 0 , 0 , $month , $cpt_day - $num_day , $year ) ) && date ( 'm' )  == $month )
{
$class = ' style="color:#00FF00;"' ;
}
if ( ( ( $cpt_day - $num_day ) < 1 ) || ( ( $cpt_day - $num_day ) > $max_day ) )
{
$class = ' style="color:#cccccc;"' ;        
}
            $cpt_day ++ ;
            echo ( $i == 0 ) ? '<tr align="center">' : '' ;
            echo '<td width="100"' . $class . '>' . $tab_day[$i] . ' ' . $val . '</td>';
            echo ( $i == 6 ) ? '</tr>' : '' ;
            $i ++ ;
            } // endfor ( $i = 0 ; $i < 7 ; $i ++ )
      } // endwhile ( $cpt_day <= $max_day + $num_day )
?>
</table>
Partager