Я бы лучше написал функцию, которая возвращает объект, сообщающий мне день и номер недели в месяце заданной даты. Что-то вроде:
function infoDate(date) {
return {
day: date.getDay()+1,
week: (date.getDate()-1)%7+1
}
}
Тогда я могу прочитать возвращенный объект и выяснить, второй ли это понедельник или еще что-то:
var info = infoDate(date);
if(info.day==1 && info.week==2) {
// second monday
}
Конечно, вы все равно можете написать другую локализованную функцию, которая будет выполнять именно то, что вы просите, на основе массива числовых и дневных имен.