Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Код.
**Предмет:** Веб-разработка **Раздел предмета:** Программирование на JavaScript, верстка на HTML/CSS. **Задание:** Нужно создать веб-страницу, которая позволяет пользователю выбрать месяц и год через интерфейс (список), и отобразить календарь этого месяца в виде таблицы. Также, пользователь должен иметь возможность выбирать даты в календаре и сохранять их в виде списка. ## Решение Мы будем использовать HTML и JavaScript для создания такой страницы. ### 1. HTML-часть: Создадим форму для выбора месяца и года, а также таблицу для отображения календаря. ```html Календарь
// Заполнение списка годов
const yearSelect = document.getElementById('year');
for (let i = 2020; i <= new Date().getFullYear(); i++) {
const option = document.createElement('option');
option.value = i;
option.text = i;
yearSelect.appendChild(option);
}
// Заполнение списка месяцев
const monthSelect = document.getElementById('month');
const months = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн', 'Июл', 'Авг', 'Сен', 'Окт', 'Ноя', 'Дек'];
months.forEach((month, index) => {
const option = document.createElement('option');
option.value = index;
option.text = month;
monthSelect.appendChild(option);
});
// Получение количества дней в месяце
function getDaysInMonth(year, month) {
return new Date(year, month + 1, 0).getDate();
}
// Генерация календаря
function generateCalendar() {
const year = yearSelect.value;
const month = monthSelect.value;
const daysInMonth = getDaysInMonth(year, month);
const firstDay = new Date(year, month, 1).getDay();
const calendar = document.getElementById('calendar');
calendar.innerHTML = ''; // Очистим предыдущий календарь
// Заголовки таблицы (дни недели)
const daysOfWeek = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'];
const headerRow = document.createElement('tr');
daysOfWeek.forEach(day => {
const th = document.createElement('th');
th.innerText = day;
headerRow.appendChild(th);
});
calendar.appendChild(headerRow);
// Создаем строки календаря
let date = 1;
for (let row = 0; row < 6; row++) {
const weekRow = document.createElement('tr');
for (let col = 0; col < 7; col++) {
const cell = document.createElement('td');
if (row === 0 && col < firstDay - 1 || date > daysInMonth) {
cell.innerText = '';
} else {
cell.innerText = date;
cell.onclick = () => selectDate(date); // Обрабатывать нажатие на дату
date++;
}
weekRow.appendChild(cell);
}
calendar.appendChild(weekRow);
}
}
// Выбор даты
function selectDate(day) {
const selectedDatesList = document.getElementById('selectedDates');
// Проверяем, выбрана ли уже эта дата
const existingDate = Array.from(selectedDatesList.children).find(li => li.innerText === day.toString());
if (!existingDate) {
const li = document.createElement('li');
li.innerText = day;
selectedDatesList.appendChild(li);
}
}
При загрузке страницы пользователь сможет выбрать год и месяц, затем, при нажатии на кнопку "Показать календарь", таблица с днями соответствующего месяца отобразится на странице. Также при клике на любую из дат, она добавится в список выбранных дат.
Это полноценное решение задачи с использованием JavaScript и HTML для создания интерактивного календаря с возможностью выбора дат.