Получить n-й день недели в месяце по номеру дня в этом месяце

Для данного дня в месяце (например, 22 ноября 2022 г.) я хочу иметь возможность узнать, какое число соответствует этому конкретному дню недели в этом месяце. Итак, учитывая день 22 ноября 2022 года, мне нужно вернуть «4-й вторник».

В идеале я хотел бы сделать это с помощью javascript Date или Luxon, если это возможно, но мои поиски до сих пор не дали ответа, и логика для определения этого просто ускользает от меня.

Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это действительно несколько вопросов в одном.

Вы можете получить название дня недели из toLocaleString с подходящими опциями.

N-й случай определенного дня недели, учитывая дату, находится путем деления на 7 и округления.

Порядковый номер можно добавить, используя любой из ответов на вопрос Добавить суффикс st, nd, rd и th (порядковый) к числу.

Например.

function nthDate(date = new Date()) {
  let dayname = date.toLocaleString('en', {weekday: 'long'});
  let nth = Math.ceil(date.getDate() / 7);
  nth += ["st", "nd", "rd"][((nth + 90) % 100 - 10) % 10 - 1] || "th";
  return `${nth} ${dayname}`;
}

let d = new Date();
console.info(`Today is the ${nthDate(d)} of ${d.toLocaleString('en',{month:'long', year:'numeric'})}.`);

Другие вопросы по теме