Что делает скрипт

Ближайшая дата занятия подставляется автоматически по дням недели.

Как подключить

  1. Текстовому элементу задайте класс time.
  2. В массиве задайте дни недели: 0 — воскресенье, 1 — понедельник и так далее. Дни без занятий замените на пустое значение.
  3. Вставьте код в блок T123 «HTML-код» на страницу (или в «Настройки страницы» → «HTML-код для вставки внутрь head»).
  4. Опубликуйте страницу: код выполняется только на опубликованной странице.

Код

Код для вставки — часть 1 из 2
<script> 

// Инструкция по смене даты проведения
// Каждому дню недели соответсвует число
// 0 - вс, 1 - пн, 2 - вт, 3 - ср, 4 - чт, 5 - пт, 6 - сб

// Чтобы установить дни недели, в которые нужно выводить дату проведения занятия
// нужно установить числовые значения в массив (по порядку от 0 до 6) как в примере ниже
// const arr = [0, 1, 2, 3, 4, 5, 6] - в данном случае дата проведения будет выставляться каждый день

// Если в какой-то из дней недели мы не хотим проводить занятие, то необходим вместо
// числа, соответствующего дню недели вставить - null (ниже пример)
// const arr = [0, null, null, null, 4, null, null] - в данном случае дата проведения выпадает на вc и чт

const arr = [0, 1, 2, 3, 4, 5, 6];
const timeStartHours = 18;
const timeStartMin = '00 Мск';
const months = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'];


function setStartDate() {
    let now = new Date(),
        currentWeekDay = now.getDay(),
        currentMonthDay = now.getDate();

    let upDays = 0;

    if (arr[currentWeekDay] === currentWeekDay && now.getHours() >= timeStartHours) {
        upDays++;
        currentWeekDay++;
    }

    let flag = true;
    while (flag) {
        for (let i = currentWeekDay; i < 7; i++) {
            if (arr[i] === i) {
                flag = false;
                break;
            }
            if (flag) upDays++;
        }
        if (flag) currentWeekDay = 0;
    }

    let currentMonth = now.getMonth(),
        nextMonth = now.getMonth(),
        nextMonthDay = null,
        dateData = '';

    if (currentMonthDay + upDays <= getLastDayOfMonth(now.getFullYear(), currentMonth)) {
        nextMonthDay = currentMonthDay + upDays;
    } else {
        nextMonth = nextMonth !== 11 ? nextMonth + 1 : 0;
        nextMonthDay = upDays - (getLastDayOfMonth(now.getFullYear(), currentMonth) - currentMonthDay);
    }

    dateData = `${nextMonthDay} ${months[nextMonth]} ${timeStartHours}:${timeStartMin}`;

    document.querySelectorAll('.time').forEach(function (e) {
        e.innerHTML = dateData;
    });
}

function getLastDayOfMonth(year, month) {
    let date = new Date(year, month + 1, 0);
    return date.getDate();
}

function checkArray(array) {
    if (array.length !== 7) {
        return false;
    }
    let flag = false;
    for (let i = 0; i <= 6; i++) {
        if (array.includes(i)) flag = true;
    }
    if (flag) {
        for (let j = 0; j < array.length; j++) {
            if (array[j] !== j && array[j] !== null) {
                flag = false;
            }
        }
    }
    return flag;
}

if (checkArray(arr)) {
    setStartDate();
}

let isContentShowed = false;

window.addEventListener('scroll', () => {
    if (isContentShowed === false) {
        isContentShowed = true;
        document.querySelector('.main').style.display = 'block';
    }
});
</script>
Код для вставки — часть 2 из 2
<style>

/*Стиль текста даты — сначала создаешь простую дату и 
через инспектор копируешь все ее данные: шрифт, цвет и т.д
Потом эти данные вставляешь ниже и уже тогда назначаешь имя «time» для даты*/


.time {    
    color: #000000;
font-size: 25px;
font-family: 'Montserrat',Arial,sans-serif;
line-height: 1.55;
font-weight: 600;
background-position: center center;
border-color: transparent;
border-style: solid;

</style>
тут нужно написать стили и js/css для того, чтобы отображались файлы скриптов