Skip to content

Instantly share code, notes, and snippets.

@aoirint
Last active June 17, 2017 02:26
Show Gist options
  • Save aoirint/3547e209de50aa0aa7d640ae0ff295f3 to your computer and use it in GitHub Desktop.
Save aoirint/3547e209de50aa0aa7d640ae0ff295f3 to your computer and use it in GitHub Desktop.
Ver.3 実行月の日曜始まり5週カレンダーを出力するJS / もっとシンプルに。中心に来る週を指定できるように
var Calendar = {};
Calendar.create = function(year, month, baseWeek, amplitude) {
if (amplitude == undefined) amplitude = 2;
var weeks = {};
weeks['amplitude'] = amplitude;
weeks['weekCount'] = amplitude*2 +1;
for (var i=0; i<weeks['weekCount']; i++) {
var week = [];
var weekI = baseWeek +i-amplitude;
var weekTop = new Date(year, month-1, 7*(weekI-1)+1);
for (var j=0; j<7; j++) {
week[j] = new Date(weekTop.getFullYear(), weekTop.getMonth(), weekTop.getDate() +j);
}
weeks[i] = week;
}
return weeks;
};
var today = new Date();
var weeks = Calendar.create(today.getFullYear(), today.getMonth()+1, today.getDate()/7);
window.onload = function() {
var table = document.createElement('table');
for (var i=0; i<weeks['weekCount']; i++) {
var weektr = document.createElement('tr');
for (var j=0; j<7; j++) {
var datetd = document.createElement('td');
var date = weeks[i][j];
var mn = date.getMonth() +1;
if (mn < 10) mn = '0' + mn;
var dt = date.getDate();
if (dt < 10) dt = '0' + dt;
datetd.dataset.date = date.getFullYear() + '-' + mn + '-' + dt;
datetd.innerText = date.getDate();
weektr.appendChild(datetd);
}
table.appendChild(weektr);
}
document.body.appendChild(table);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment