Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Dev tableau
:
config01.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<!DOCTYPE html> <html lang="fr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Configuration des Dates</title> <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container mt-5"> <h2>Configurer les Dates</h2> <form id="configForm"> <div class="form-group"> <label for="startDate">Date de Début</label> <input type="date" class="form-control" id="startDate" name="startDate" required> </div> <div class="form-group"> <label for="endDate">Date de Fin</label> <input type="date" class="form-control" id="endDate" name="endDate" required> </div> <button type="submit" class="btn btn-primary">Générer le Tableau</button> </form> <div id="holidaysList" class="mt-3"> <h3>Jours Fériés :</h3> <ul id="holidays"></ul> </div> </div> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script> <script> document.getElementById('configForm').addEventListener('submit', function(event) { event.preventDefault(); const startDate = document.getElementById('startDate').value; const endDate = document.getElementById('endDate').value; // Calculer les jours fériés dynamiquement const holidays = calculateHolidays(startDate, endDate); // Afficher les jours fériés const holidaysList = document.getElementById('holidays'); holidaysList.innerHTML = ''; holidays.forEach(holiday => { const li = document.createElement('li'); li.textContent = holiday; holidaysList.appendChild(li); }); // Rediriger vers la page principale avec les paramètres dans l'URL const url = `index02.html?startDate=${startDate}&endDate=${endDate}&holidays=${holidays.join(',')}`; window.location.href = url; }); function calculateHolidays(startDate, endDate) { const holidays = []; const start = new Date(startDate); const end = new Date(endDate); const currentYear = start.getFullYear(); // Liste des jours fériés fixes en France const fixedHolidays = [ '01-01', // Jour de l'an '05-01', // Fête du Travail '05-08', // Victoire 1945 '07-14', // Fête Nationale '08-15', // Assomption '11-01', // Toussaint '11-11', // Armistice 1918 '12-25' // Noël ]; // Ajouter les jours fériés fixes fixedHolidays.forEach(date => { const holiday = new Date(`${currentYear}-${date}`); if (holiday >= start && holiday <= end) { holidays.push(holiday.toISOString().split('T')[0]); } }); // Ajouter les jours fériés mobiles (Pâques et jours associés) const easter = calculateEaster(currentYear); const easterMonday = new Date(easter); easterMonday.setDate(easterMonday.getDate() + 1); const ascension = new Date(easter); ascension.setDate(ascension.getDate() + 39); const pentecote = new Date(easter); pentecote.setDate(pentecote.getDate() + 49); const pentecoteMonday = new Date(pentecote); pentecoteMonday.setDate(pentecoteMonday.getDate() + 1); const mobileHolidays = [easterMonday, ascension, pentecoteMonday]; mobileHolidays.forEach(holiday => { if (holiday >= start && holiday <= end) { holidays.push(holiday.toISOString().split('T')[0]); } }); return holidays; } function calculateEaster(year) { const f = Math.floor, G = year % 19, C = f(year / 100), H = f(C / 4), J = f((C - f(C / 4) + f(8 * C + 13) / 25) / 3) + (15 - 30 * C + f(C / 4) - f(C / 4 / 4)) % 30, L = J - f(J / 28 * (1 - f(29 / (J + 1)) * f((21 - G) / 11))), I = L - (year + f(year / 4) + 6 - H) % 7, P = L - I, d = 1 + (P + 27 + f(P / 26) * (29 - P % 29)) % 31, m = 3 + f((P + 26) / 30); return new Date(year, m - 1, d); } </script> </body> </html>