m~r.Nemo,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
</style>
</head>
<body>
<script>
function monthTable(month, year) {
var monthNames =[
'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь',
'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'
];
var calendar = { 0: ['Вс'], 1: ['Пн'], 2: ['Вт'], 3: ['Ср'], 4: ['Чт'], 5: ['Пт'], 6: ['Сб'] };
var now = new Date;
var m = month ? month - 1 : now.getMonth();
var y = year ? year : now.getFullYear();
var days = (new Date(y, m + 1, 0)).getDate();
var week = 1;
var start = (new Date(y, m, 1)).getDay();
for (var i = 0; i < days; i++) {
if (start % 7 === 1 && i > 0) week++;
if (calendar[start % 7].length !== week) calendar[start % 7].push(" ");
if (i < 9) calendar[start % 7].push(" " + (i + 1));
else calendar[start % 7].push(i + 1);
start++
}
var txt =
monthNames[m] + ", " + y;
for (var i$0 = 1; i$0 < 8; i$0++) txt += "<br> " + calendar[i$0 % 7].join(" ");
var div = document.createElement("div");
div.innerHTML = txt
return div
}
document.body.appendChild(monthTable(5, 2015));
document.body.appendChild(monthTable(2, 2020));
document.body.appendChild(monthTable());
</script>
</body>
</html>