blocknote ([personal profile] blocknote) wrote2023-04-11 06:15 am
Entry tags:

код календаря на js



Ответь по-русски. А такой же календарь на js, чтобы для любой даты подходил сделаешь?

PERPLEXITY

View Detailed
Конечно, я могу написать пример кода календаря на JavaScript, который будет работать для любой даты. Вот пример кода:
function generateCalendar(year, month) {
  const monthNames = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];
 
  const daysInMonth = new Date(year, month + 1, 0).getDate();
 
  const calendar = document.createElement("table");
  const header = document.createElement("tr");
  const monthHeader = document.createElement("th");
  monthHeader.colSpan = 7;
  monthHeader.textContent = monthNames[month] + " " + year;
  header.appendChild(monthHeader);
  calendar.appendChild(header);
 
  const dayNames = ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"];
  const dayHeader = document.createElement("tr");
  for (let i = 0; i < dayNames.length; i++) {
    const day = document.createElement("th");
    day.textContent = dayNames[i];
    dayHeader.appendChild(day);
  }
  calendar.appendChild(dayHeader);
 
  const firstDayOfMonth = new Date(year, month, 1).getDay();
  const row = document.createElement("tr");
  for (let i = 0; i < firstDayOfMonth; i++) {
    const cell = document.createElement("td");
    row.appendChild(cell);
  }
 
  for (let i = 1; i <= daysInMonth; i++) {
    const cell = document.createElement("td");
    cell.textContent = i;
    row.appendChild(cell);
    if ((firstDayOfMonth + i) % 7 === 0) {
      calendar.appendChild(row);
      row = document.createElement("tr");
    }
  }
 
  calendar.appendChild(row);
 
  return calendar;
}
 
const today = new Date();
const year = today.getFullYear();
const month = today.getMonth();
 
const calendar = generateCalendar(year, month);
 
document.body.appendChild(calendar);

Этот код создает таблицу, которая отображает календарь для любой даты, заданной годом и месяцем. Функция generateCalendar принимает год и месяц в качестве аргументов и возвращает таблицу, содержащую календарь для этой даты. Код также обрабатывает случай, когда первый день месяца не понедельник, чтобы правильно выровнять ячейки в таблице.

Он умнее меня...
Я в этом коде ваще ничо не понимаю, хотя мне казалось, что я там чего-то учу и какие-то задания выполняю.


Post a comment in response:

(will be screened)
(will be screened)
(will be screened)
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting