<style> table { border-collapse: collapse; } td { border: 1px solid #111; padding: 5px; text-align: center; } .monthName { width: 15ch; } .day { width: 2.5ch; } .day:nth-child(7n), .day:nth-child(7n+1) { background: #aaa; } .day.highlightYellow { background: #ff6; } .day.highlightGreen { background: #2f7; } </style> <?php $year = 2025; $headings = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]; echo "<table class='calendar'>"; echo "<tr><td><b>Months</b></td>"; // En-têtes des jours de la semaine foreach ($headings as $heading) { echo "<td class='day'>$heading</td>"; } echo "</tr>"; // Cycle à travers les mois for ($month = 1; $month <= 12; $month++) { $thisMonth = new DateTime("$year-$month-01"); $daysInMonth = $thisMonth->format("t"); $monthName = $thisMonth->format("F"); echo "<tr class='month'><td class='monthName'>$monthName</td>"; // Afficher tous les jours du mois dans la même ligne for ($day = 1; $day <= $daysInMonth; $day++) { $rand = mt_rand(1, 100); $highlightClass = (!($rand % 15) ? "highlightYellow" : (!($rand % 35) ? "highlightGreen" : "")); echo "<td class='day $highlightClass'>$day</td>"; } // Compléter la ligne pour que chaque mois ait 7 colonnes (7 jours) $remainingDays = 7 - ($daysInMonth % 7); for ($i = 0; $i < $remainingDays && $remainingDays < 7; $i++) { echo "<td class='day'></td>"; } echo "</tr>"; } echo "</table>"; ?>