d3
Version:
A small, free JavaScript library for manipulating documents based on data.
51 lines (46 loc) • 1.11 kB
JavaScript
var calendar = {
format: d3.time.format("%Y-%m-%d"),
dates: function(year) {
var dates = [],
date = new Date(year, 0, 1),
week = 0,
day;
do {
dates.push({
day: day = date.getDay(),
week: week,
month: date.getMonth(),
Date: calendar.format(date)
});
date.setDate(date.getDate() + 1);
if (day == 6) week++;
} while (date.getFullYear() == year);
return dates;
},
months: function(year) {
var months = [],
date = new Date(year, 0, 1),
month,
firstDay,
firstWeek,
day,
week = 0;
do {
firstDay = date.getDay();
firstWeek = week;
month = date.getMonth();
do {
day = date.getDay();
if (day == 6) week++;
date.setDate(date.getDate() + 1);
} while (date.getMonth() == month);
months.push({
firstDay: firstDay,
firstWeek: firstWeek,
lastDay: day,
lastWeek: day == 6 ? week - 1 : week
});
} while (date.getFullYear() == year);
return months;
}
};