src/cal-heatmap.js
function (d, range) {
		"use strict";

		var start = new Date(d.getFullYear(), d.getMonth());
		var stop = null;
		if (range instanceof Date) {
			stop = new Date(range.getFullYear(), range.getMonth());
		} else {
			stop = new Date(start);
			stop = stop.setMonth(stop.getMonth()+range);
		}

		return d3.time.months(Math.min(start, stop), Math.max(start, stop));
	}
function (d, range) {
		"use strict";

		var start = new Date(d.getFullYear(), d.getMonth());
		var stop = null;
		if (range instanceof Date) {
			stop = new Date(range.getFullYear(), range.getMonth());
		} else {
			stop = new Date(start);
			stop = stop.setMonth(stop.getMonth()+range);
		}

		return d3.time.months(Math.min(start, stop), Math.max(start, stop));
	}
function ( d , range ) { "use strict" ; var start = new Date ( d . getFullYear ( ) , d . getMonth ( ) ) ; var stop = null ; if ( range instanceof Date ) { stop = new Date ( range . getFullYear ( ) , range . getMonth ( ) ) ; } else { stop = new Date ( start ) ; stop = stop . setMonth ( stop . getMonth ( ) + range ) ; } return d3 . time . months ( Math . min ( start , stop ) , Math . max ( start , stop ) ) ; }
Return all the months between 2 dates

@param  Date		d		A date
@param  int|date	range	Number of months in the range, or a stop date
@return array	An array of months
Return all the months between 2 dates