Итак, я полагаю, что суть вашей проблемы заключается в следующем: откуда мне знать, что такое вторая суббота каждого месяца?
Не проверено, но это то, что я придумал:любой n-й день любого месяца.
nthDate = function(nth_week, nth_day, month){
var src_date = new Date();
src_date.setDate(1);
src_date.setMonth(month);
return ( (nth_week * 7) - src_date.getDay() ) - ( Math.abs( nth_day - 6) );
};
var cur_date = new Date();
var cur_day = cur_date.getDay();
//2 for the 2nd week of the month
//6 is the integer value for saturday (days of the week 0-6)
var nth_date = nthDate( 2, 6, cur_date.getMonth() );
if(cur_day < nth_date){
//display the upcoming date here
}else if( cur_day > nth_date){
//figure out next month's date and display that
var next_date = nthDate(2, 6, (cur_date.getMonth() +1) );
//does this deal with the case of the month being december?? not sure.
}
2-я неделя находится в диапазоне 14 дней в месяце.
Мы можем:
сначала вычесть смещение для дня недели, с которого начинается этот месяц,
, затем секунду:
мы можем вычестьсмещение для дня недели, который мы ищем.(это должно быть смещение дней , поэтому суббота - это смещение 0 (ноль). Мы получаем это значение из абсолютного значения n-го дня минус количество дней в неделе.
Это дает нам дату второй субботы.
Тогда, поскольку у вас есть несколько целых чисел, вы можете сделать простое сравнение со значениями.
Если мы до второй субботы,отобразить это, если не рассчитать новую дату для следующего месяца.
Надеюсь, это поможет.