Блондинка,
Элита делает так (календарь):
Date.prototype.reduce = function(callback, value) {
var year = this.getFullYear();
var month = this.getMonth();
var step = new Date(year, month, 1);
var last = new Date(year, month + 1, 0);
step.setHours(24 * (0 - (step.getDay() + 6) % 7));
last.setHours(24 * (6 - (last.getDay() + 6) % 7));
for (var i = 0; step <= last; i++) {
value = callback(value, new Date(+step), i, this);
step.setHours(24);
}
return value;
};
var test = new Date();
var text = test.reduce(function(value, current, index, source) {
return value + current.getDate() + (current.getDay() ? '\t' : '\n');
}, 'Пн\tВт\tСр\tЧт\tПт\tСб\tВс\n');
console.log(text);