countdayweek
countdayweek<!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>День недели для заданного числа каждого месяца</title> <style> .day-of-week { color: red; /* Задаем красный цвет для дня недели */ } .count-circle { display: inline-block; width: 30px; /* Ширина круга */ height: 30px; /* Высота круга */ border: 2px solid red; /* Обводка круга красного цвета */ border-radius: 25%; /* Закругление углов для круга */ text-align: center; /* Центрирование текста */ line-height: 25px; /* Вертикальное центрирование текста */ font-size: 125%; /* Увеличение размера шрифта на 25% */ } .result-item { margin-bottom: 5px; /* Отступ между элементами списка */ } </style> </head> <body> <h1>День недели для заданного числа каждого месяца</h1> <input type="number" id="yearInput" placeholder="Введите год" /> <input type="number" id="dayInput" placeholder="Введите число (1-31)" min="1" max="31" /> <button onclick="calculateDays()">Рассчитать</button> <ul id="resultList"></ul> <script> function calculateDays() { const year = parseInt(document.getElementById('yearInput').value); const day = parseInt(document.getElementById('dayInput').value); const resultList = document.getElementById('resultList'); resultList.innerHTML = ''; // Очистить предыдущие результаты const months = [ 'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь' ]; const daysOfWeek = [ 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье' ]; // Объект для подсчета дней недели const weekCount = { 'Понедельник': 0, 'Вторник': 0, 'Среда': 0, 'Четверг': 0, 'Пятница': 0, 'Суббота': 0, 'Воскресенье': 0 }; for (let month = 0; month < 12; month++) { // Получаем количество дней в текущем месяце const daysInMonth = new Date(year, month + 1, 0).getDate(); // Проверяем, существует ли введенное число в текущем месяце if (day > daysInMonth) { const listItem = document.createElement('li'); listItem.className = 'result-item'; listItem.textContent = `${months[month]} ${year}: Дата ${day} не существует`; resultList.appendChild(listItem); continue; // Переходим к следующему месяцу } const date = new Date(year, month, day); // Заданное число месяца const dayOfWeek = (date.getDay() + 6) % 7; // Преобразование: воскресенье (0) становится 6 const monthName = months[month]; // Вычисление номера дня в году const startOfYear = new Date(year, 0, 1); // 1 января const dayOfYear = Math.floor((date - startOfYear) / (1000 * 60 * 60 * 24)) + 1; const listItem = document.createElement('li'); listItem.className = 'result-item'; listItem.innerHTML = `${day} ${monthName} ${year}: <span class="day-of-week">${daysOfWeek[dayOfWeek]}</span>, день в году: ${dayOfYear}`; resultList.appendChild(listItem); // Увеличиваем счетчик для соответствующего дня недели weekCount[daysOfWeek[dayOfWeek]]++; } // Выводим количество дней недели в новом формате const countList = document.createElement('ul'); // Создаем новый список для вывода количества дней for (const [dayName, count] of Object.entries(weekCount)) { // Форматируем вывод с правильным склонением let dayNameGenitive; switch (dayName) { case 'Понедельник': dayNameGenitive = 'Понедельника'; break; case 'Вторник': dayNameGenitive = 'Вторника'; break; case 'Среда': dayNameGenitive = 'Среды'; break; case 'Четверг': dayNameGenitive = 'Четверга'; break; case 'Пятница': dayNameGenitive = 'Пятницы'; break; case 'Суббота': dayNameGenitive = 'Субботы'; break; case 'Воскресенье': dayNameGenitive = 'Воскресенья'; break; default: dayNameGenitive = dayName; // На всякий случай } const countItem = document.createElement('li'); countItem.innerHTML = `${dayNameGenitive} — <span class="count-circle">${count}</span>`; countList.appendChild(countItem); } // Добавляем список с количеством дней к результатам const countHeader = document.createElement('li'); countHeader.textContent = 'Количество дней:'; resultList.appendChild(countHeader); resultList.appendChild(countList); } </script> </body> </html>
Leave a Comment