countdayweek
countdayweekunknown
javascript
a year ago
6.9 kB
6
Indexable
<!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>
Editor is loading...
Leave a Comment