<?php // Liste des jours de la semaine (sans le samedi et le dimanche) $jours_semaine = ["L", "M", "M", "J", "V"]; // Initialiser la date de début de l'année 2025 $date_debut = new DateTime('2025-01-01'); // Tableau pour stocker les jours $jours = []; for ($i = 0; $i < 365; $i++) { $jour_semaine = $date_debut->format('w'); // Récupérer le jour de la semaine if ($jour_semaine >= 1 && $jour_semaine <= 5) { // Lundi à Vendredi $jours[] = $date_debut->format('j'); // Ajouter le jour du mois } $date_debut->modify('+1 day'); // Passer au jour suivant } // Calculer le jour de la semaine du 1er janvier 2025 $debut_semaine = (new DateTime('2025-01-01'))->format('w'); // Jour de la semaine du 1er janvier // Initialiser un tableau pour les jours à afficher dans le tableau HTML $tableau_jours = array_fill(0, $debut_semaine, ''); // Ajouter des cellules vides au début pour aligner // Ajouter les jours de l'année 2025 dans le tableau $tableau_jours = array_merge($tableau_jours, $jours); // Calculer combien de lignes seront nécessaires pour afficher toutes les dates $nombre_de_colonnes = count($tableau_jours); // Ajouter des cellules vides à la fin si nécessaire pour que chaque ligne ait 5 cellules (Lundi à Vendredi) while (count($tableau_jours) % 5 != 0) { $tableau_jours[] = ''; // Ajouter des cellules vides } ?> <!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Calendrier 2025</title> <style> table { width: 100%; border-collapse: collapse; } th, td { padding: 8px; text-align: center; border: 1px solid #000; /* Largeur par défaut des cellules, mais modifiable via la classe CSS */ width: 20px; /* Définir une largeur de base, vous pouvez la modifier */ } th { background-color: #f2f2f2; } /* Classe CSS pour modifier la largeur des cellules */ .cellule-large { width: 150px; /* Largeur personnalisée */ } .cellule-moyenne { width: 120px; /* Largeur moyenne */ } </style> </head> <body> <table> <!-- Première ligne avec les noms des jours --> <tr> <?php // Afficher les jours de la semaine, répétés jusqu'à ce qu'il y ait 365 colonnes for ($i = 0; $i < $nombre_de_colonnes; $i++) { // Appliquer une classe CSS pour changer la largeur si besoin $classe = ($i % 5 == 0) ? "cellule-large" : "cellule-moyenne"; echo "<th class='$classe'>" . $jours_semaine[$i % 5] . "</th>"; } ?> </tr> <!-- Seconde ligne avec les dates --> <tr> <?php // Afficher les dates sur la deuxième ligne foreach ($tableau_jours as $jour) { echo "<td>" . ($jour === '' ? '' : $jour) . "</td>"; } ?> </tr> </table> </body> </html>