народ, в году есть несколько событий (праздников) которые отмечают не конкретного числа, а в определённый день недели конкретного месяца, например третий вторник октября, или второй понедельник апреля и тд
или отсчёт может идти с конца месяца, например последняя суббота сентября, или предпоследняя пятница февраля, (в месяце ведь может быть и 4 и 5 дней недели)
Вопрос такой, как высчитывать дату в этих обоих случаях? каким именно способом определить число(дату)?
посоветовали что-то типа такого добавить...
const holiday = {
month: 6, //месяц праздника
day: 7, //номер дня недели
number: -1 // номер недели — отрицательный индекс означает что счёт ведётся с конца
};
//День Военно-морского флота
function getDate(date, year) {
const d = new Date();
d.setFullYear(year);
d.setMonth(holiday.month, 1);
const firstDay =
1 + holiday.day + (d.getDay() < holiday.day ? -d.getDay() : 7 - d.getDay());
const days = [firstDay];
let day = firstDay;
while (
new Date(year, holiday.month, (day += 7)).getMonth() == holiday.month
) {
days.push(day);
}
const index = (holiday.number < 0 ? days.length : 0) + holiday.number;
//return days[index];
return new Date(year, holiday.month, days[index]).toLocaleString();
}
console.log(getDate(holiday, 2022));
народ, помогите добавить несколько подобных событий в этот скрипт...