O (1):
function countCertainDays( days, d0, d1 ) {
var ndays = 1 + Math.round((d1-d0)/(24*3600*1000));
var sum = function(a,b) {
return a + Math.floor( ( ndays + (d0.getDay()+6-b) % 7 ) / 7 ); };
return days.reduce(sum,0);
}
, [1,3,5] :
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,1))
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,2))
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,3))
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,4))
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,5))
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,6))
countCertainDays([1,3,5],new Date(2014,8,1),new Date(2014,8,7))
, Date 0, 1 2014 Date(2014,8,1).